diff --git a/frontend-sba/pages/demo-decisions.vue b/frontend-sba/pages/demo-decisions.vue index ae3d274..ba69d88 100644 --- a/frontend-sba/pages/demo-decisions.vue +++ b/frontend-sba/pages/demo-decisions.vue @@ -216,6 +216,10 @@ :is-active="demoControls.isActive" :current-decision="demoState.offensiveDecision" :has-runners-on-base="demoControls.hasRunners" + :runner-on-first="!!demoRunners.first" + :runner-on-second="!!demoRunners.second" + :runner-on-third="!!demoRunners.third" + :outs="0" @submit="handleOffensiveSubmit" /> @@ -260,6 +264,47 @@ + + +
+
+

+ 📚 Other Demo Pages +

+
+ +
🎮
+
Game State Demo
+
+ Live game state visualization +
+
+ +
🎲
+
Gameplay Demo
+
+ Dice rolling & manual outcomes +
+
+ +
🔄
+
Substitutions Demo
+
+ Player substitution workflow +
+
+
+
+
@@ -307,9 +352,7 @@ const demoState = ref({ hold_runners: [], } as DefensiveDecision, offensiveDecision: { - approach: 'normal', - hit_and_run: false, - bunt_attempt: false, + action: 'swing_away', } as Omit, stealAttempts: [] as number[], decisionHistory: [ @@ -320,7 +363,7 @@ const demoState = ref({ }, { type: 'Offensive' as const, - summary: 'power approach, Hit & Run', + summary: 'Swing Away', timestamp: '10:45:18', }, ], @@ -361,16 +404,21 @@ const handleDefensiveSubmit = (decision: DefensiveDecision) => { const handleOffensiveSubmit = (decision: Omit) => { demoState.value.offensiveDecision = decision - const tactics = [] - if (decision.hit_and_run) tactics.push('Hit & Run') - if (decision.bunt_attempt) tactics.push('Bunt') - const summary = `${decision.approach} approach${tactics.length ? ', ' + tactics.join(', ') : ''}` + const actionLabels: Record = { + swing_away: 'Swing Away', + steal: 'Steal', + check_jump: 'Check Jump', + hit_and_run: 'Hit and Run', + sac_bunt: 'Sacrifice Bunt', + squeeze_bunt: 'Squeeze Bunt', + } + const summary = actionLabels[decision.action] || decision.action demoState.value.decisionHistory.unshift({ type: 'Offensive', summary, timestamp: new Date().toLocaleTimeString(), }) - showToast(`Offensive decision submitted: ${summary}`) + showToast(`Offensive action selected: ${summary}`) } const handleStealSubmit = (attempts: number[]) => { diff --git a/frontend-sba/pages/demo-gameplay.vue b/frontend-sba/pages/demo-gameplay.vue index 9f60e1f..d241645 100644 --- a/frontend-sba/pages/demo-gameplay.vue +++ b/frontend-sba/pages/demo-gameplay.vue @@ -181,6 +181,47 @@ + + +
+
+

+ 📚 Other Demo Pages +

+
+ +
🎮
+
Game State Demo
+
+ Live game state visualization +
+
+ +
⚔️
+
Decisions Demo
+
+ Decision input components +
+
+ +
🔄
+
Substitutions Demo
+
+ Player substitution workflow +
+
+
+
+
diff --git a/frontend-sba/pages/demo-substitutions.vue b/frontend-sba/pages/demo-substitutions.vue index b1c679b..c386699 100644 --- a/frontend-sba/pages/demo-substitutions.vue +++ b/frontend-sba/pages/demo-substitutions.vue @@ -126,6 +126,47 @@ + + +
+
+

+ 📚 Other Demo Pages +

+
+ +
🎮
+
Game State Demo
+
+ Live game state visualization +
+
+ +
⚔️
+
Decisions Demo
+
+ Decision input components +
+
+ +
🎲
+
Gameplay Demo
+
+ Dice rolling & manual outcomes +
+
+
+
+
diff --git a/frontend-sba/pages/demo.vue b/frontend-sba/pages/demo.vue index 21737d7..444d1d8 100644 --- a/frontend-sba/pages/demo.vue +++ b/frontend-sba/pages/demo.vue @@ -160,6 +160,47 @@ + + +
+
+

+ 📚 Other Demo Pages +

+
+ +
⚔️
+
Decisions Demo
+
+ Decision input components +
+
+ +
🎲
+
Gameplay Demo
+
+ Dice rolling & manual outcomes +
+
+ +
🔄
+
Substitutions Demo
+
+ Player substitution workflow +
+
+
+
+