summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/holeplay/PlayState.java
diff options
context:
space:
mode:
authorMichael Lizzio <mjl2396@rit.edu>2025-10-05 03:57:37 -0400
committerMichael Lizzio <mjl2396@rit.edu>2025-10-05 03:57:37 -0400
commitfc8584b1defdbfeaf80ad3e0c7bdb9f53cf2929c (patch)
treedd445ae810dab13caacd1f5a6a5e2e8d7588e95a /src/main/java/design/model/holeplay/PlayState.java
parent4c485841954cb566d82b2e14a0cddf347a3d8e18 (diff)
downloaddesignproject-design-6-fc8584b1defdbfeaf80ad3e0c7bdb9f53cf2929c.tar.gz
designproject-design-6-fc8584b1defdbfeaf80ad3e0c7bdb9f53cf2929c.tar.bz2
designproject-design-6-fc8584b1defdbfeaf80ad3e0c7bdb9f53cf2929c.zip
Completed first take of holeplay logic and added empty test files
Diffstat (limited to 'src/main/java/design/model/holeplay/PlayState.java')
-rw-r--r--src/main/java/design/model/holeplay/PlayState.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/design/model/holeplay/PlayState.java b/src/main/java/design/model/holeplay/PlayState.java
index e69de29..e41af6b 100644
--- a/src/main/java/design/model/holeplay/PlayState.java
+++ b/src/main/java/design/model/holeplay/PlayState.java
@@ -0,0 +1,31 @@
+package design.model.holeplay;
+
+import design.model.Club;
+
+public class PlayState implements HoleState {
+ @Override
+ public void enter(HolePlayContext ctx) {
+ /* no-op */ }
+
+ @Override
+ public void handleStart(HolePlayContext ctx) {
+ throw new IllegalStateException("Hole already started.");
+ }
+
+ @Override
+ public void handleShot(HolePlayContext ctx, Club club, Integer distanceYds) {
+ ctx.addSwing(club, distanceYds);
+ // remain in PlayState
+ }
+
+ @Override
+ public void handleHoleOut(HolePlayContext ctx) {
+ ctx.finalizePlayAndPersist();
+ ctx.setState(new HoleCompleteState());
+ }
+
+ @Override
+ public String name() {
+ return "PlayState";
+ }
+}