示例#1
0
 private boolean openDoor() {
   final RSObject door = objects.getNearest(Molly.DOOR_ID);
   if (door == null) {
     return false;
   }
   if (!calc.tileOnScreen(door.getLocation())) {
     walking.walkTileOnScreen(door.getLocation());
     sleep(1000, 2000);
     return false;
   }
   door.interact("Open");
   return false;
 }
示例#2
0
 @Override
 public int loop() {
   if (!activateCondition()) {
     log("Molly random finished!");
     sleep(500);
     if (!activateCondition()) {
       return -1;
     }
   }
   controlPanel = objects.getNearest(Molly.CONTROL_PANEL_ID);
   if (getMyPlayer().isMoving() || getMyPlayer().getAnimation() != -1) {
     return random(800, 1300);
   }
   if (interfaces.canContinue()) {
     interfaces.clickContinue();
     return random(250, 750);
   }
   if (mollyID == -1) {
     mollyID = molly.getID();
     log("Molly ID: " + Integer.toString(mollyID));
     log("Evil Twin ID:" + Integer.toString(mollyID - 40));
   }
   if (interfaces.canContinue()) {
     setCamera();
     interfaces.clickContinue();
     return random(500, 800);
   }
   final RSComponent skipInterface =
       interfaces.get(Molly.MOLLY_CHATBOX_INTERFACEGROUP).getComponent(Molly.MOLLY_CHATBOX_SKIP);
   if (skipInterface != null
       && skipInterface.isValid()
       && skipInterface.getAbsoluteY() > 5
       && skipInterface.containsText("Yes, I")) {
     skipInterface.doClick();
     return random(600, 1000);
   }
   final RSComponent noThanksInterface =
       interfaces
           .get(Molly.MOLLY_CHATBOX_INTERFACEGROUP)
           .getComponent(Molly.MOLLY_CHATBOX_NOTHANKS);
   if (noThanksInterface != null
       && noThanksInterface.isValid()
       && noThanksInterface.getAbsoluteY() > 5) {
     setCamera();
     sleep(random(800, 1200));
     noThanksInterface.doClick();
     talkedToMolly = true;
     return random(600, 1000);
   }
   if (!cameraSet) {
     camera.setPitch(true);
     cameraSet = true;
     return random(300, 500);
   }
   if (finished && !inControlRoom()) {
     if (!calc.tileOnScreen(molly.getLocation())) {
       walking.walkTileOnScreen(molly.getLocation());
       return random(1000, 2000);
     }
     molly.interact("Talk");
     return random(1000, 1200);
   }
   if (finished && inControlRoom()) {
     if (!openDoor()) {
       return random(1000, 1500);
     }
     return random(400, 600);
   }
   if (!inControlRoom()) {
     if (talkedToMolly
         && !finished
         && (interfaces.get(Molly.MOLLY_CHATBOX_INTERFACEGROUP) == null
             || interfaces.get(Molly.MOLLY_CHATBOX_INTERFACEGROUP).getComponent(0).getAbsoluteY()
                 < 2)
         && (interfaces.get(Molly.MOLLY_CHATBOX_NOTHANKS) == null
             || interfaces.get(Molly.MOLLY_CHATBOX_NOTHANKS).getComponent(0).getAbsoluteY() < 2)) {
       openDoor();
       sleep(random(800, 1200));
     } else {
       molly.interact("Talk");
       talkedToMolly = true;
       return random(1000, 2000);
     }
   } else {
     if (npcs.getNearest("Molly") != null) {
       finished = true;
       sleep(random(800, 1200));
     } else {
       if (!inControlInterface()) {
         if (calc.tileOnScreen(controlPanel.getLocation())) {
           controlPanel.interact("Use");
           sleep(random(1200, 2000));
         } else {
           walking.walkTileOnScreen(controlPanel.getLocation());
           camera.setPitch(true);
           camera.turnTo(controlPanel);
         }
       } else {
         navigateClaw();
         delayTime = System.currentTimeMillis();
         while (!interfaces.canContinue() && System.currentTimeMillis() - delayTime < 15000) {}
         if (interfaces.canContinue()) {
           interfaces.clickContinue();
         }
         sleep(random(300, 400));
       }
     }
   }
   return random(200, 400);
 }