lychees's picture
Upload 569 files
87b3b3a

Autonomous Robot

donmccurdy

    map.defineObject('robot', {
        // ...
        'behavior': function (me) {
            if (me.canMove('down')) {
                me.move('down');
            } else if (me.canMove('right')) {
                me.move('right');
            }
        }
    });

Portal style

JustBlackBird

Just press "R" and go through the portals

    if (player.teleportersAreReady) {
        // Do not add teleporters more than once
        return;
    }

    // Place two teleporters at the map
    map.placeObject(player.getX(), player.getY() - 1, 'teleporter');
    map.placeObject(map.getWidth() - 2, 7, 'teleporter');

    // We need teleporters objects, so find them
    var objs = map.getDynamicObjects();
    var teleporters = [];

    for (var i = 0, len = objs.length; i < len; i++) {
        if (objs[i].getType() == 'teleporter') {
                teleporters.push(objs[i]);
        }
    }

    // Link teleporters one to another
    teleporters[0].setTarget(teleporters[1]);
    teleporters[1].setTarget(teleporters[0]);

    // We need an indicator to know if teleporters already
    // in place or not. Use "player" object from the closure
    player.teleportersAreReady = true;

Remote Control

sheaulle

    // works with levels 11, 12, 13
        
    var PX = map.getPlayer().getX();
    var PY = map.getPlayer().getY()-10;
    var MX = me.getX();
    var MY = me.getY();
    
    if (PX == MX && PY > MY) {
        me.move('down'); 
    }
    else if (PX == MX && PY <= MY) {
        me.move('up'); 
    }
    else if (PX > MX) {
          me.move('right'); 
    }
    else if (PX < MX) {
        me.move('left'); 
    }

##Pcat0 Hit 'q' to toggle between controlling you and the robot. Works for 11, 12, 13

          me.move(dr);
        }
    });
    var Pc = 0;
    var dr = '';
    map.getPlayer().setPhoneCallback(function(){
      if ((Pc++)%2==0){
        map.overrideKey('down', ()=> dr = 'down');
        map.overrideKey('up', ()=> dr = 'up');
        map.overrideKey('left', ()=> dr = 'left');
        map.overrideKey('right', ()=> dr = 'right');
      }else{
        map.overrideKey('down', ()=> map.getPlayer().move('down'));
        map.overrideKey('up', ()=> map.getPlayer().move('up'));
        map.overrideKey('left', ()=> map.getPlayer().move('left'));
        map.overrideKey('right', ()=> map.getPlayer().move('right'));
        dr = '';
      }
    });({function(){

Control pad (works for 11, 12, 13)

mingp

if (typeof(me.controlInited == 'undefined')) {
    me.controlSquares = [
        [40, 20, 'up', 'red'],
        [39, 21, 'left', 'yellow'],
        [41, 21, 'right', 'cyan'],
        [40, 22, 'down', 'magenta']
    ];
    for (var i = 0; i < me.controlSquares.length; ++i) {
        var controlSquare = me.controlSquares[i];
        map.setSquareColor(
            controlSquare[0],
            controlSquare[1],
            controlSquare[3]
        );
    }
    me.controlInited = true;
}
for (var i = 0; i < me.controlSquares.length; ++i) {
    var controlSquare = me.controlSquares[i];
    if (
        player.getX() == controlSquare[0]
        && player.getY() == controlSquare[1]
    ) {
        me.move(controlSquare[2]);
        break;
    }
}