lychees's picture
Upload 569 files
87b3b3a
#BEGIN_PROPERTIES#
{
"version": "0.1",
"commandsIntroduced": []
}
#END_PROPERTIES#
/*******************
* ice.js *
* by mdejean *
*******************
*
*/
function startLevel(map) {
#START_OF_START_LEVEL#
var savedX, savedY, savedDirection;
map.defineObject('ice', {
'symbol': '.', 'color': '#00f',
'impassable': function(player, me) {
savedX = player.getX();
savedY = player.getY();
return false;
},
'onCollision': function(player) {
if (player.getX() == savedX) {
if (player.getY() > savedY) {
savedDirection = 'down';
} else {
savedDirection = 'up';
}
} else {
if (player.getX() > savedX) {
savedDirection = 'right';
} else {
savedDirection = 'left';
}
}
var dirs = ['up', 'down', 'left', 'right'];
for (var d=0;d<dirs.length;d++) {
if (dirs[d] != savedDirection) {
map.overrideKey(dirs[d], function(){});
}
}
}
});
map.startTimer(function() {
var player = map.getPlayer();
var x = player.getX(), y = player.getY();
if (map.getObjectTypeAt(x,y) == 'ice') {
player.move(savedDirection);
}
if (player.getX() == x && player.getY() == y) {
map.overrideKey('up', null);
map.overrideKey('down', null);
map.overrideKey('left', null);
map.overrideKey('right', null);
}
},200);
map.createFromGrid(
['+++++++++++++++++++++++++++++++',
'+ +++ +',
'+ ++E+ +',
'+ xxxx +',
'+ xxxx +',
'+ xxxx +',
'+ xxxx +',
'+ @+++ +',
'+ +',
'+ +',
'+ +',
'+ +',
'+ +',
'+ +',
'+++++++++++++++++++++++++++++++'],
{
'@': 'player',
'E': 'exit',
'+': 'block',
'x': 'ice',
}, 6, 6);
#BEGIN_EDITABLE#
#END_EDITABLE#
#END_OF_START_LEVEL#
}
function validateLevel(map) {
map.validateExactlyXManyObjects(0, 'phone');
map.validateExactlyXManyObjects(0, 'theAlgorithm');
map.validateExactlyXManyObjects(1, 'exit');
map.validateAtMostXDynamicObjects(0);
}