Spaces:
Running
Running
| #BEGIN_PROPERTIES# | |
| { | |
| "version": "1.2.2", | |
| "commandsIntroduced": | |
| ["map.getDynamicObjects", "map.getCanvasCoords", "object.setTarget"], | |
| "music": "Tart", | |
| "mapProperties": { | |
| "showDrawingCanvas": true | |
| } | |
| } | |
| #END_PROPERTIES# | |
| /*************** | |
| * pointers.js * | |
| *************** | |
| * | |
| * You! How are you still alive? | |
| * | |
| * Well, no matter. Good luck getting through this | |
| * maze of rooms - you'll never see me or the Algorithm again! | |
| */ | |
| function startLevel(map) { | |
| #START_OF_START_LEVEL# | |
| function shuffle(o){ //v1.0 [http://bit.ly/1l6LGQT] | |
| for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), | |
| x = o[--i], o[i] = o[j], o[j] = x); | |
| return o; | |
| }; | |
| map.createFromGrid( | |
| ['+++++++++++++++++++++++++++++++++++++++++++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+* @ o++* o++* o++* o++* o++* o++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+++++++++++++++++++++++++++++++++++++++++++++', | |
| '+++++* o++++* o++++* o++++* o++++* o++++* o++', | |
| '++++o *++o *++o *++o *++o *++o *+', | |
| '+++++* o++++* o++++* o++++* o++++* o++++* o++', | |
| '+++++++++++++++++++++++++++++++++++++++++++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+* o++* o++* o++* o++* o++* o++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+++++++++++++++++++++++++++++++++++++++++++++', | |
| '+++++* o++++* o++++* o++++* o++++* o++++* o++', | |
| '++++o *++o *++o *++o *++o *++o *+', | |
| '+++++* o++++* o++++* o++++* o++++* o++++* o++', | |
| '+++++++++++++++++++++++++++++++++++++++++++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+* o++* o++* o++* o++* o++* E o++++', | |
| '++o *++++o *++++o *++++o *++++o *++++o *+++++', | |
| '+++++++++++++++++++++++++++++++++++++++++++++'], | |
| { | |
| '@': 'player', | |
| 'E': 'exit', | |
| '+': 'block', | |
| 'o': 'teleporter', | |
| '*': 'trap', | |
| }, 2, 2); | |
| var canvas = map.getCanvasContext(); | |
| var teleportersAndTraps = map.getDynamicObjects(); | |
| teleportersAndTraps = shuffle(teleportersAndTraps); | |
| for (var i = 0; i < teleportersAndTraps.length; i+=2) { | |
| var t1 = teleportersAndTraps[i]; | |
| var t2 = teleportersAndTraps[i+1]; | |
| // Point each teleporter to either another teleporter | |
| // or a trap | |
| if (t1.getType() == 'teleporter') { | |
| t1.setTarget(t2); | |
| } | |
| if (t2.getType() == 'teleporter') { | |
| t2.setTarget(t1); | |
| } | |
| #BEGIN_EDITABLE# | |
| // TODO find a way to remove the API docs | |
| // wouldn't want the 'good doctor' to find | |
| // out about map.getCanvasCoords()... | |
| #END_EDITABLE# | |
| } | |
| #END_OF_START_LEVEL# | |
| } | |
| function validateLevel(map) { | |
| map.validateExactlyXManyObjects(1, 'exit'); | |
| } | |