private boolean useByreGots(boolean ignoreCondition) throws InterruptedException { if (ignoreCondition || isGoodOrExcellentCondition()) { Motors.getInstance().pressB(); Thread.sleep(BUFF_TIME); return true; } return false; }
@Override public void run() throws Exception { CraftBot.STATE = CraftBot.STATE_GETRUNCOUNT; int runCount = Util.getNumberSelection(); Thread.sleep(1000); CraftBot.STATE = CraftBot.STATE_RUNNING; Motors.getInstance().initRemoteNXT(); run3starProgram(runCount); }
private void handleGood() throws InterruptedException { if (isGoodCondition()) { Motors.getInstance().pressB(); Thread.sleep(BUFF_TIME); if (stage < 3 && !goodseen2) { goodseen2 = true; goodcounter++; } goodcounter++; } }
private void run3starProgram(int runLength) throws InterruptedException, IOException { Stopwatch foodTimer = new Stopwatch(); foodTimer.reset(); // press10();//eat food for (int i = 0; i < runLength; i++) { goodcounter = 0; goodseen2 = false; if (foodTimer.elapsed() >= 1620000) { // 27 minutes foodTimer.reset(); // press10();//eat food } LCD.clear(); LCD.drawString("Battery: " + Battery.getVoltage(), 0, 0); LCD.drawString("BatteryR: " + Motors.getInstance().getRemoteBattery(), 0, 1); LCD.drawString("REMAIN: " + (runLength - i - 1), 0, 2); // start craft from craft menu Motors.getInstance().pressC(); Thread.sleep(1000); Motors.getInstance().pressC(); Thread.sleep(2000); // stage 1 stage = 1; Motors.getInstance().pressA(); // comfort zone Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteC(); // inner quiet Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteB(); // CarefulSynth2 Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteB(); // CarefulSynth2 Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteA(); // go to next stage Thread.sleep(250); // stage 2 stage = 2; Motors.getInstance().pressA(); // steady hand 2 Thread.sleep(BUFF_TIME); goodseen = false; for (int j = 0; j < 4; j++) { handleGood2(); if (goodcounter > 0) { goodcounter--; Motors.getInstance().pressRemoteC(); // basic touch } else { Motors.getInstance().pressRemoteB(); // hasty touch } Thread.sleep(TOUCH_TIME); } Motors.getInstance().pressRemoteA(); // go to next stage Thread.sleep(250); // stage 3 stage = 3; handleGood(); Motors.getInstance().pressA(); // comfort zone Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteC(); // master's mend 2 Thread.sleep(BUFF_TIME); handleGood(); Motors.getInstance().pressRemoteA(); // go to next stage Thread.sleep(250); // stage 4 stage = 4; Motors.getInstance().pressA(); // steady hand 2 Thread.sleep(BUFF_TIME); goodseen = false; for (int j = 0; j < 4; j++) { handleGood2(); if (goodcounter > 0) { goodcounter--; Motors.getInstance().pressRemoteC(); // basic touch } else { Motors.getInstance().pressRemoteB(); // hasty touch } Thread.sleep(TOUCH_TIME); } Motors.getInstance().pressA(); // steady hand 2 Thread.sleep(BUFF_TIME); Motors.getInstance().pressRemoteA(); // go to next stage Thread.sleep(250); // stage 5 stage = 4; boolean byresUsed = false; Motors.getInstance().pressA(); // Great Strides Thread.sleep(BUFF_TIME); Motors.getInstance().pressRemoteB(); // Innovation Thread.sleep(BUFF_TIME); if (!byresUsed) byresUsed = useByreGots(false); Motors.getInstance().pressRemoteC(); // Ingenuity 2 Thread.sleep(BUFF_TIME); if (!byresUsed) byresUsed = useByreGots(true); Motors.getInstance().pressRemoteA(); // Finish Thread.sleep(TOUCH_TIME * 3 + 4000); } Motors.getInstance().shutdown(); }