summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/HolePlayMenu.java37
1 files changed, 31 insertions, 6 deletions
diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
index 34e36f6..14e5345 100644
--- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
+++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
@@ -44,13 +44,38 @@ public class HolePlayMenu extends Menu {
} else {
// 0) Take a shot
opts.add(new MenuOption("take a shot", () -> {
- // Gets club
+ // loads golfers clubs
+ var golfer = Session.getCurrentGolfer();
+ Club[] clubs = (golfer == null) ? new Club[0] : golfer.getClubs();
+
+ if (clubs.length == 0) {
+ System.out.println("You don't have any clubs yet. Add one first.");
+ new AddClubMenu().present();
+ this.present();
+ return;
+ }
+
+ // list clubs
+ System.out.println("-- YOUR CLUBS --");
+ for (int i = 0; i < clubs.length; i++) {
+ Club c = clubs[i];
+ System.out.printf("%d: #%d %s - %s (%s)%n",
+ i + 1, c.getId(), c.getNickname(), c.getManufacture(), c.getClubType());
+ }
+
+ // user selects one of their clubs
Scanner sc = new Scanner(System.in);
- System.out.print("Club nickname: ");
- String nick = sc.nextLine().trim();
- // Defaulted to Driver for now
- // TODO update logic
- Club club = new Club(0, "Generic", nick, Club.ClubType.DRIVER);
+ Club club = null;
+ while (club == null) {
+ System.out.print("Select club # (1.." + clubs.length + "): ");
+ String line = sc.nextLine().trim();
+ int idx = Integer.parseInt(line);
+ if (idx < 1 || idx > clubs.length) {
+ System.out.println("Out of range. Try again.");
+ continue;
+ }
+ club = clubs[idx - 1];
+ }
// Get shot distance (defaults to 0 of not stated)
System.out.print("Distance (yds, blank=0): ");