untrusted-lvl7-solution.js

/************* * colors.js * ************* * * You're almost at the exit. You just need to get past this * color lock. * * Changing your environment is no longer enough. You must * learn to change yourself. I've sent you a little something * that should help with that. */ function startLevel(map) { map.placePlayer(0, 12); map.placeObject(5, 12, 'phone'); // The function phone lets you call arbitrary functions, // as defined by player.setPhoneCallback() below. // The function phone callback is bound to Q or Ctrl-6. map.getPlayer().setPhoneCallback(function () { var playerColor = map.getPlayer().getColor(); switch(playerColor) { case '#f00': map.getPlayer().setColor('#ff0'); break; case '#ff0': map.getPlayer().setColor('#0f0'); break; case '#0f0': map.getPlayer().setColor('#f00'); break; } }); map.defineObject('redLock', { symbol: '☒', color: "#f00", // red impassable: function(player, object) { return player.getColor() != object.color; } }); map.defineObject('greenLock', { symbol: '☒', color: "#0f0", // green impassable: function(player, object) { return player.getColor() != object.color; } }); map.defineObject('yellowLock', { symbol: '☒', color: "#ff0", // yellow impassable: function(player, object) { return player.getColor() != object.color; } }); for (var x = 20; x <= 40; x++) { map.placeObject(x, 11, 'block'); map.placeObject(x, 13, 'block'); } map.placeObject(22, 12, 'greenLock'); map.placeObject(25, 12, 'redLock'); map.placeObject(28, 12, 'yellowLock'); map.placeObject(31, 12, 'greenLock'); map.placeObject(34, 12, 'redLock'); map.placeObject(37, 12, 'yellowLock'); map.placeObject(40, 12, 'exit'); for (var y = 0; y < map.getHeight(); y++) { if (y != 12) { map.placeObject(40, y, 'block'); } for (var x = 41; x < map.getWidth(); x++) { map.setSquareColor(x, y, '#080'); } } } function validateLevel(map) { map.validateExactlyXManyObjects(1, 'exit'); } function onExit(map) { if (!map.getPlayer().hasItem('phone')) { map.writeStatus("We need the phone!"); return false; } else { return true; } }
Solution to level 7 in Untrusted: http://alex.nisnevich.com/untrusted/

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.