88import com .pedropathing .geometry .BezierLine ;
99import com .pedropathing .geometry .Pose ;
1010import com .qualcomm .robotcore .eventloop .opmode .Autonomous ;
11+ import com .skeletonarmy .marrow .TimerEx ;
1112import com .skeletonarmy .marrow .prompts .OptionPrompt ;
1213import com .skeletonarmy .marrow .prompts .Prompter ;
1314
2021import org .firstinspires .ftc .teamcode .pedroPathing .Constants ;
2122
2223import dev .nextftc .core .commands .delays .Delay ;
24+ import dev .nextftc .core .commands .delays .WaitUntil ;
2325import dev .nextftc .core .commands .groups .ParallelRaceGroup ;
2426import dev .nextftc .core .commands .groups .SequentialGroup ;
2527import dev .nextftc .core .commands .utility .InstantCommand ;
2931@ Autonomous (name = "Auto_Main_" , group = "Main" , preselectTeleOp ="Teleop_Main_" )
3032public class Auto_Main_ extends NextFTCOpMode {
3133
34+ TimerEx timer25Sec = new TimerEx (25 );
3235 // Variable to store the selected auto program
3336 Auto selectedAuto = null ;
3437 // Create the prompter object for selecting Alliance and Auto
@@ -61,10 +64,14 @@ public void onInit() {
6164 prompter .prompt ("auto" ,
6265 new OptionPrompt <>("Select Auto" ,
6366 new MOE_365_FAR (),
67+ new Near_15Ball (),
68+ new Near_15Ball2 (),
6469 new Near_12Ball (),
6570 new Near_9Ball (),
6671 new Far_9Ball (),
67- new Far_6Ball ()
72+ new Far_6Ball (),
73+ new Far_3Ball ()
74+ //new test()
6875 ));
6976 prompter .onComplete (() -> {
7077 selectedAlliance = prompter .get ("alliance" );
@@ -97,10 +104,11 @@ public void onWaitForStart() {
97104
98105 @ Override
99106 public void onStartButtonPressed () {
100- Robot .lights .setAllianceDisplay (selectedAlliance );
107+ Robot .lights .setSolidAllianceDisplay (selectedAlliance );
101108 // Schedule the proper auto
102109 selectedAuto .runAuto ();
103110 turretOn = selectedAuto .getTurretEnabled ();
111+ timer25Sec .restart ();
104112
105113 // Indicate that initialization is done
106114 telemetry .addLine ("Initialized" );
@@ -113,11 +121,7 @@ public void onUpdate() {
113121 telemetry .addData ("Alliance" , selectedAlliance );
114122 Robot .turret .updateAimbot (turretOn , true , 0 );
115123 Robot .turret .updateFlywheel ();
116-
117124 MecanumDrivetrainClass .robotPose = Robot .drivetrain .follower .getPose ();
118-
119- telemetry .addLine ();
120- telemetry .addData ("Mirror -90" , Math .toDegrees (paths .autoMirror (new Pose (0 ,0 ,-90 )).getHeading ()));
121125 telemetry .update ();
122126 }
123127
@@ -151,7 +155,7 @@ abstract static class Auto{
151155 public abstract String toString ();
152156 }
153157
154- private class Far_6Ball extends Auto {
158+ private class Far_9Ball extends Auto {
155159 @ Override
156160 public Pose getStartPose (){
157161 return paths .farStart ;
@@ -171,16 +175,20 @@ public void runAuto(){
171175 Commands .runPath (paths .farShoot_to_farPreload , true , 1 ),
172176 Commands .runPath (paths .farPreload_to_farShoot , true , 1 ),
173177 Commands .shootBalls (),
178+ Commands .setFlywheelState (Turret .flywheelState .ON ),
179+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
180+ Commands .runPath (paths .farShoot_to_hpPreload , true , 1 ),
181+ Commands .runPath (paths .hpPreload_to_farShoot , true , 1 ),
182+ Commands .shootBalls (),
174183 Commands .runPath (paths .farShoot_to_farLeave , true , 1 )
175184 ).schedule ();
176185 }
177186
178187 @ NonNull
179188 @ Override
180- public String toString (){return "Far Zone 6 Ball" ;}
189+ public String toString (){return "Far 9 Ball" ;}
181190 }
182-
183- private class Far_9Ball extends Auto {
191+ private class Far_6Ball extends Auto {
184192 @ Override
185193 public Pose getStartPose (){
186194 return paths .farStart ;
@@ -200,20 +208,44 @@ public void runAuto(){
200208 Commands .runPath (paths .farShoot_to_farPreload , true , 1 ),
201209 Commands .runPath (paths .farPreload_to_farShoot , true , 1 ),
202210 Commands .shootBalls (),
203- Commands .setFlywheelState (Turret .flywheelState .ON ),
204- Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
205- Commands .runPath (paths .farShoot_to_midPreload , true , 1 ),
206- Commands .runPath (paths .midPreload_to_farShoot , true , 1 ),
207- Commands .shootBalls (),
208211 Commands .runPath (paths .farShoot_to_farLeave , true , 1 )
209212 ).schedule ();
210213 }
211214
212215 @ NonNull
213216 @ Override
214- public String toString (){return "Far Zone 9 Ball" ;}
217+ public String toString (){return "Far 6 Ball" ;}
215218 }
219+ private class Far_3Ball extends Auto {
216220
221+ @ Override
222+ Pose getStartPose () {
223+ return paths .farStart ;
224+ }
225+
226+ @ Override
227+ boolean getTurretEnabled () {
228+ return true ;
229+ }
230+
231+ @ Override
232+ void runAuto () {
233+ new SequentialGroup (
234+ Commands .setFlywheelState (Turret .flywheelState .ON ),
235+ Commands .runPath (paths .farStart_to_farShoot , true , 1 ),
236+ Commands .shootBalls (),
237+ new WaitUntil (() -> timer25Sec .isDone ()),
238+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
239+ Commands .runPath (paths .farShoot_to_hpPreload , true , 1 )
240+ ).schedule ();
241+ }
242+
243+ @ NonNull
244+ @ Override
245+ public String toString () {
246+ return "Far 3 Ball + HP Intake" ;
247+ }
248+ }
217249 private class Near_9Ball extends Auto {
218250 @ Override
219251 public Pose getStartPose (){
@@ -247,9 +279,8 @@ public void runAuto(){
247279
248280 @ NonNull
249281 @ Override
250- public String toString (){return "Near Zone 9 Ball" ;}
282+ public String toString (){return "Near 9 Ball" ;}
251283 }
252-
253284 private class Near_12Ball extends Auto {
254285 @ Override
255286 public Pose getStartPose (){
@@ -285,9 +316,100 @@ public void runAuto(){
285316
286317 @ NonNull
287318 @ Override
288- public String toString (){return "Near Zone 12 Ball" ;}
319+ public String toString (){return "Near 12 Ball" ;}
320+ }
321+ private class Near_15Ball extends Auto {
322+
323+ @ Override
324+ Pose getStartPose () {
325+ return paths .nearStart ;
326+ }
327+
328+ @ Override
329+ boolean getTurretEnabled () {
330+ return true ;
331+ }
332+
333+ @ Override
334+ void runAuto () {
335+ new SequentialGroup (
336+ Commands .setFlywheelState (Turret .flywheelState .ON ),
337+ Commands .runPath (paths .nearStart_to_midShoot , true , 1 ),
338+ Commands .shootBalls (),
339+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
340+ Commands .runPath (paths .midShoot_to_midPreload , true , 1 ),
341+ Commands .runPath (paths .midPreload_to_midShoot , true , 1 ),
342+ Commands .shootBalls (),
343+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
344+ Commands .runPath (paths .midShoot_to_openGateIntake , true , 1 ),
345+ Commands .waitForArtifacts (),
346+ Commands .runPath (paths .openGateIntake_to_midShoot , true , 1 ),
347+ Commands .shootBalls (),
348+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
349+ Commands .runPath (paths .midShoot_to_farPreload , true , 1 ),
350+ Commands .setIntakeMode (Intake .intakeMode .OFF ),
351+ Commands .runPath (paths .farPreload_to_midShoot , true , 1 ),
352+ Commands .shootBalls (),
353+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
354+ Commands .runPath (paths .midShoot_to_nearPreload , true , 1 ),
355+ Commands .runPath (paths .nearPreload_to_midShoot , false , 1 ),
356+ Commands .shootBalls (),
357+ Commands .runPath (paths .midShoot_to_nearLeave , true , 1 )
358+ ).schedule ();
359+ }
360+
361+ @ NonNull
362+ @ Override
363+ public String toString () {
364+ return "Near 15 Ball (With Far Spike Mark)" ;
365+ }
289366 }
367+ private class Near_15Ball2 extends Auto {
290368
369+ @ Override
370+ Pose getStartPose () {
371+ return paths .nearStart ;
372+ }
373+
374+ @ Override
375+ boolean getTurretEnabled () {
376+ return true ;
377+ }
378+
379+ @ Override
380+ void runAuto () {
381+ new SequentialGroup (
382+ Commands .setFlywheelState (Turret .flywheelState .ON ),
383+ Commands .runPath (paths .nearStart_to_midShoot , true , 1 ),
384+ Commands .shootBalls (),
385+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
386+ Commands .runPath (paths .midShoot_to_midPreload , true , 1 ),
387+ Commands .runPath (paths .midPreload_to_midShoot , true , 1 ),
388+ Commands .shootBalls (),
389+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
390+ Commands .runPath (paths .midShoot_to_openGateIntake , true , 1 ),
391+ Commands .waitForArtifacts (),
392+ Commands .runPath (paths .openGateIntake_to_midShoot , true , 1 ),
393+ Commands .shootBalls (),
394+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
395+ Commands .runPath (paths .midShoot_to_openGateIntake , true , 1 ),
396+ Commands .waitForArtifacts (),
397+ Commands .runPath (paths .openGateIntake_to_midShoot , true , 1 ),
398+ Commands .shootBalls (),
399+ Commands .setIntakeMode (Intake .intakeMode .INTAKING ),
400+ Commands .runPath (paths .midShoot_to_nearPreload , true , 1 ),
401+ Commands .runPath (paths .nearPreload_to_midShoot , false , 1 ),
402+ Commands .shootBalls (),
403+ Commands .runPath (paths .midShoot_to_nearLeave , true , 1 )
404+ ).schedule ();
405+ }
406+
407+ @ NonNull
408+ @ Override
409+ public String toString () {
410+ return "Near 15 Ball (No Far Spike Mark)" ;
411+ }
412+ }
291413 private class MOE_365_FAR extends Auto {
292414 @ Override
293415 public Pose getStartPose (){
@@ -341,6 +463,6 @@ public void runAuto(){
341463
342464 @ NonNull
343465 @ Override
344- public String toString (){return "MOE 365 Far Zone Auto " ;}
466+ public String toString (){return "MOE 365 Far" ;}
345467 }
346468}
0 commit comments