Rocket League - Brickwolves/CodeCampWiki GitHub Wiki


//@Disabled
@TeleOp(name="Rocket League", group="Iterative Opmode")
public class RocketLeague extends OpMode {

    // Declare OpMode members.

    private ElapsedTime boostCooldown = new ElapsedTime();
    private ElapsedTime boostTime = new ElapsedTime();
    public Robot robot;
    Controller controller;
    Controller controller2;
    public CRServo duck;
    IMU imu;
    Color_Sensor color;
    public double boost = 0;
    double red;
    boolean rumbled = false;

    /*
     * Code to run ONCE when the driver hits INIT
     */
    @Override
    public void init() {
        setOpMode(this);

        robot = new Robot();
        controller = new Controller(gamepad1);
        controller2 = new Controller(gamepad2);
        color = new Color_Sensor();
        imu = new IMU("imu");
        color.init("color");
        red = color.updateRed();


        multTelemetry.addData("Status", "Initialized");
        multTelemetry.update();
    }

    /*
     * Code to run REPEATEDLY after the driver hits INIT, but before they hit PLAY
     */
    @Override
    public void init_loop() {

        /*
                    Y O U R   C O D E   H E R E
                                                   */


        multTelemetry.addData("Status", "InitLoop");
        multTelemetry.update();
    }

    /*
     * Code to run ONCE when the driver hits PLAY
     */
    @Override
    public void start() {
        boostCooldown.reset();



        /*
                    Y O U R   C O D E   H E R E
                                                   */

        multTelemetry.addData("Status", "Started");
        multTelemetry.update();
    }

    /*
     * Code to run REPEATEDLY after the driver hits PLAY but before they hit STOP
     */
    @Override
    public void loop() {

        //Boost Stuff

        if(color.updateRed()>red+1000 && boostCooldown.seconds() > 2.0 && boost < 3){
            boost = boost + 1;
            boostCooldown.reset();
        }



        if(boost > 2 && controller.RB.press()){
            boostTime.reset();
            boost = 0;
            rumbled = false;
        }

        if(!rumbled && boost > 2){
            rumbled = true;
            controller.gamepad.rumble(1000);
        }

        double power = .4;
        double drive = MathUtils.shift(controller.leftStick(), imu.getAngle()).y;
        double strafe = -MathUtils.shift(controller.leftStick(), imu.getAngle()).x;
        double turn = -controller.rightStick().x;

        if(boostTime.seconds()<1){
            power = 1;
        }

        robot.setDrivePower(power, strafe, turn, drive);

        controller.controllerUpdate();

        /*
             ----------- L O G G I N G -----------
                                                */
        multTelemetry.addData("Status", "TeleOp Running");
        multTelemetry.addData("Boost", boost);
        multTelemetry.addData("red", color.getRedCacheValue());
        multTelemetry.update();
    }

    @Override
    public void stop() {

        /*
                    Y O U R   C O D E   H E R E
                                                   */

    }
}