Program: 164190
Project: 164190
Buggy source:
@Override public void execute(Hero hero,String action){
  if (action == AC_SET || action == AC_RETURN) {
    if (Dungeon.bossLevel()) {
      hero.spend(LloydsBeacon.TIME_TO_USE);
      GLog.w(Messages.get(this,"String_Node_Str"));
      return;
    }
    for (int i=0; i < Level.NEIGHBOURS8.length; i++) {
      if (Actor.findChar(hero.pos + Level.NEIGHBOURS8[i]) != null) {
        GLog.w(Messages.get(this,"String_Node_Str"));
        return;
      }
    }
  }
  if (action == AC_ZAP) {
    curUser=hero;
    int chargesToUse=Dungeon.depth > 20 ? 2 : 1;
    if (!isEquipped(hero))     GLog.i(Messages.get(Artifact.class,"String_Node_Str"));
 else     if (charge < chargesToUse)     GLog.i(Messages.get(this,"String_Node_Str"));
 else {
      GameScene.selectCell(zapper);
    }
  }
 else   if (action == AC_SET) {
    returnDepth=Dungeon.depth;
    returnPos=hero.pos;
    hero.spend(LloydsBeacon.TIME_TO_USE);
    hero.busy();
    hero.sprite.operate(hero.pos);
    Sample.INSTANCE.play(Assets.SND_BEACON);
    GLog.i(Messages.get(this,"String_Node_Str"));
  }
 else   if (action == AC_RETURN) {
    if (returnDepth == Dungeon.depth) {
      ScrollOfTeleportation.appear(hero,returnPos);
      Dungeon.level.press(returnPos,hero);
      Dungeon.observe();
    }
 else {
      Buff buff=Dungeon.hero.buff(TimekeepersHourglass.timeFreeze.class);
      if (buff != null)       buff.detach();
      for (      Mob mob : Dungeon.level.mobs.toArray(new Mob[0]))       if (mob instanceof DriedRose.GhostHero)       mob.destroy();
      InterlevelScene.mode=InterlevelScene.Mode.RETURN;
      InterlevelScene.returnDepth=returnDepth;
      InterlevelScene.returnPos=returnPos;
      Game.switchScene(InterlevelScene.class);
    }
  }
 else {
    super.execute(hero,action);
  }
}

Fixed version (ground truth):
@Override public void execute(Hero hero,String action){
  if (action == AC_SET || action == AC_RETURN) {
    if (Dungeon.bossLevel()) {
      hero.spend(LloydsBeacon.TIME_TO_USE);
      GLog.w(Messages.get(this,"String_Node_Str"));
      return;
    }
    for (int i=0; i < Level.NEIGHBOURS8.length; i++) {
      if (Actor.findChar(hero.pos + Level.NEIGHBOURS8[i]) != null) {
        GLog.w(Messages.get(this,"String_Node_Str"));
        return;
      }
    }
  }
  if (action == AC_ZAP) {
    curUser=hero;
    int chargesToUse=Dungeon.depth > 20 ? 2 : 1;
    if (!isEquipped(hero)) {
      GLog.i(Messages.get(Artifact.class,"String_Node_Str"));
      QuickSlotButton.cancel();
    }
 else     if (charge < chargesToUse) {
      GLog.i(Messages.get(this,"String_Node_Str"));
      QuickSlotButton.cancel();
    }
 else {
      GameScene.selectCell(zapper);
    }
  }
 else   if (action == AC_SET) {
    returnDepth=Dungeon.depth;
    returnPos=hero.pos;
    hero.spend(LloydsBeacon.TIME_TO_USE);
    hero.busy();
    hero.sprite.operate(hero.pos);
    Sample.INSTANCE.play(Assets.SND_BEACON);
    GLog.i(Messages.get(this,"String_Node_Str"));
  }
 else   if (action == AC_RETURN) {
    if (returnDepth == Dungeon.depth) {
      ScrollOfTeleportation.appear(hero,returnPos);
      Dungeon.level.press(returnPos,hero);
      Dungeon.observe();
    }
 else {
      Buff buff=Dungeon.hero.buff(TimekeepersHourglass.timeFreeze.class);
      if (buff != null)       buff.detach();
      for (      Mob mob : Dungeon.level.mobs.toArray(new Mob[0]))       if (mob instanceof DriedRose.GhostHero)       mob.destroy();
      InterlevelScene.mode=InterlevelScene.Mode.RETURN;
      InterlevelScene.returnDepth=returnDepth;
      InterlevelScene.returnPos=returnPos;
      Game.switchScene(InterlevelScene.class);
    }
  }
 else {
    super.execute(hero,action);
  }
}