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'); | |
} | |