Skip to content

Commit a03b36e

Browse files
committed
Implement shootout procedure
1 parent 7fc0a81 commit a03b36e

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

internal/app/statemachine/change_gameevent.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,16 @@ func (s *StateMachine) nextCommandForEvent(newState *state.State, gameEvent *sta
342342
state.GameEvent_ATTACKER_DOUBLE_TOUCHED_BALL,
343343
state.GameEvent_PENALTY_KICK_FAILED,
344344
state.GameEvent_POSSIBLE_GOAL:
345+
if *newState.Stage == state.Referee_PENALTY_SHOOTOUT {
346+
return state.NewCommand(state.Command_PENALTY, gameEvent.ByTeam().Opposite())
347+
}
345348
return state.NewCommand(state.Command_DIRECT, gameEvent.ByTeam().Opposite())
346349
case state.GameEvent_DEFENDER_IN_DEFENSE_AREA:
347350
return state.NewCommand(state.Command_PENALTY, gameEvent.ByTeam().Opposite())
348351
case state.GameEvent_GOAL:
352+
if *newState.Stage == state.Referee_PENALTY_SHOOTOUT {
353+
return state.NewCommand(state.Command_PENALTY, gameEvent.ByTeam().Opposite())
354+
}
349355
return state.NewCommand(state.Command_KICKOFF, gameEvent.ByTeam().Opposite())
350356
case state.GameEvent_NO_PROGRESS_IN_GAME,
351357
state.GameEvent_TOO_MANY_ROBOTS:

internal/app/statemachine/change_stage.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ func (s *StateMachine) getNextCommandForStage(newState *state.State, stage state
6565
return state.NewCommand(state.Command_KICKOFF, *newState.FirstKickoffTeam)
6666
case state.Referee_NORMAL_SECOND_HALF_PRE, state.Referee_EXTRA_SECOND_HALF_PRE:
6767
return state.NewCommand(state.Command_KICKOFF, newState.FirstKickoffTeam.Opposite())
68+
case state.Referee_PENALTY_SHOOTOUT:
69+
return state.NewCommand(state.Command_PENALTY, *newState.FirstKickoffTeam)
6870
default:
6971
return nil
7072
}

0 commit comments

Comments
 (0)