Skip to content

Commit 8e226d7

Browse files
committed
[feature] Convert aimless kick to ball left field for division A
1 parent 83c51a8 commit 8e226d7

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

internal/app/controller/autoRefConnection.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ func (c *GameController) ProcessAutoRefRequests(id string, request refproto.Auto
1313

1414
if request.GameEvent != nil {
1515
details := GameEventDetailsFromProto(*request.GameEvent)
16-
gameEventType := details.EventType()
17-
event := Event{GameEvent: &GameEvent{Type: gameEventType, Details: details}}
16+
event := Event{GameEvent: &GameEvent{Type: details.EventType(), Details: details}}
17+
18+
c.Engine.filterAimlessKickForDivA(event.GameEvent)
1819

1920
if c.Engine.State.GameEventBehavior[event.GameEvent.Type] == GameEventBehaviorMajority {
2021
validUntil := c.Engine.TimeProvider().Add(c.Config.Game.AutoRefProposalTimeout)

internal/app/controller/engine.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,8 @@ func (e *Engine) processGameEvent(event *GameEvent) error {
522522
return errors.Errorf("Incomplete game event: %v", event)
523523
}
524524

525+
e.filterAimlessKickForDivA(event)
526+
525527
if e.disabledGameEvent(event.Type) {
526528
e.LogIgnoredGameEvent(*event)
527529
return nil
@@ -599,6 +601,21 @@ func (e *Engine) processGameEvent(event *GameEvent) error {
599601
return nil
600602
}
601603

604+
func (e *Engine) filterAimlessKickForDivA(gameEvent *GameEvent) {
605+
details := gameEvent.Details
606+
if e.State.Division == config.DivA && gameEvent.Type == GameEventAimlessKick {
607+
// there is no aimless kick in division A. Map it to a ball left field event
608+
gameEvent.Type = GameEventBallLeftFieldGoalLine
609+
aimlessKickDetails := details.AimlessKick
610+
gameEvent.Details = GameEventDetails{
611+
BallLeftFieldGoalLine: &refproto.GameEvent_BallLeftFieldEvent{
612+
ByBot: aimlessKickDetails.ByBot,
613+
ByTeam: aimlessKickDetails.ByTeam,
614+
Location: aimlessKickDetails.Location,
615+
}}
616+
}
617+
}
618+
602619
func (e *Engine) FoulCounterIncremented(team Team) {
603620
if e.State.TeamState[team].FoulCounter%e.config.MultipleFoulStep == 0 {
604621
teamProto := team.toProto()

0 commit comments

Comments
 (0)