Skip to content

Commit 34030ba

Browse files
committed
bugfix: No proposal/majority for GC internal game events
Some events assume they get applied and will be thrown repeatedly otherwise.
1 parent a005a54 commit 34030ba

File tree

6 files changed

+35
-31
lines changed

6 files changed

+35
-31
lines changed

config/engine.yaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,18 @@
1313
"BOT_INTERFERED_PLACEMENT": "BEHAVIOR_ACCEPT",
1414
"BOT_KICKED_BALL_TOO_FAST": "BEHAVIOR_ACCEPT",
1515
"BOT_PUSHED_BOT": "BEHAVIOR_ACCEPT",
16-
"BOT_SUBSTITUTION": "BEHAVIOR_ACCEPT",
1716
"BOT_TIPPED_OVER": "BEHAVIOR_ACCEPT",
1817
"BOT_TOO_FAST_IN_STOP": "BEHAVIOR_ACCEPT",
1918
"BOUNDARY_CROSSING": "BEHAVIOR_ACCEPT",
20-
"CHALLENGE_FLAG": "BEHAVIOR_ACCEPT",
2119
"DEFENDER_IN_DEFENSE_AREA": "BEHAVIOR_ACCEPT",
2220
"DEFENDER_TOO_CLOSE_TO_KICK_POINT": "BEHAVIOR_ACCEPT",
23-
"EMERGENCY_STOP": "BEHAVIOR_ACCEPT",
2421
"GOAL": "BEHAVIOR_ACCEPT",
2522
"INVALID_GOAL": "BEHAVIOR_ACCEPT",
2623
"KEEPER_HELD_BALL": "BEHAVIOR_ACCEPT",
27-
"MULTIPLE_CARDS": "BEHAVIOR_ACCEPT",
28-
"MULTIPLE_FOULS": "BEHAVIOR_ACCEPT",
2924
"NO_PROGRESS_IN_GAME": "BEHAVIOR_ACCEPT",
3025
"PENALTY_KICK_FAILED": "BEHAVIOR_ACCEPT",
31-
"PLACEMENT_FAILED": "BEHAVIOR_ACCEPT",
3226
"PLACEMENT_SUCCEEDED": "BEHAVIOR_ACCEPT",
33-
"POSSIBLE_GOAL": "BEHAVIOR_ACCEPT",
34-
"TOO_MANY_ROBOTS": "BEHAVIOR_ACCEPT",
35-
"UNSPORTING_BEHAVIOR_MAJOR": "BEHAVIOR_ACCEPT",
36-
"UNSPORTING_BEHAVIOR_MINOR": "BEHAVIOR_ACCEPT"
27+
"POSSIBLE_GOAL": "BEHAVIOR_ACCEPT"
3728
},
3829
"autoRefConfigs": {
3930
}

internal/app/engine/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
func DefaultConfig() (c Config) {
1414
c.AutoRefConfigs = map[string]*AutoRefConfig{}
1515
c.GameEventBehavior = map[string]Config_Behavior{}
16-
for _, event := range state.AllGameEvents() {
16+
for _, event := range state.GameEventsForBehaviorConfig() {
1717
c.GameEventBehavior[event.String()] = Config_BEHAVIOR_ACCEPT
1818
}
1919
return

internal/app/engine/engine.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (e *Engine) filterGameEvent(change *statemachine.Change) *statemachine.Chan
8484
gameEvent := change.GetAddGameEvent().GameEvent
8585
behavior := e.config.GameEventBehavior[gameEvent.Type.String()]
8686
switch behavior {
87-
case Config_BEHAVIOR_ACCEPT:
87+
case Config_BEHAVIOR_ACCEPT, Config_BEHAVIOR_UNKNOWN:
8888
return change
8989
case Config_BEHAVIOR_ACCEPT_MAJORITY, Config_BEHAVIOR_PROPOSE_ONLY:
9090
timestamp, _ := ptypes.TimestampProto(e.timeProvider())
@@ -110,8 +110,6 @@ func (e *Engine) filterGameEvent(change *statemachine.Change) *statemachine.Chan
110110
}
111111
case Config_BEHAVIOR_IGNORE:
112112
log.Printf("Ignoring game event: %v", *gameEvent)
113-
case Config_BEHAVIOR_UNKNOWN:
114-
log.Printf("Behavior for event %v unknown", *gameEvent.Type)
115113
}
116114
return nil
117115
}

internal/app/engine/proposals.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func (e *Engine) EnqueueGameEvent(gameEvent *state.GameEvent) {
3636
},
3737
},
3838
})
39-
case AutoRefConfig_BEHAVIOR_ACCEPT:
39+
case AutoRefConfig_BEHAVIOR_ACCEPT, AutoRefConfig_BEHAVIOR_UNKNOWN:
4040
e.Enqueue(&statemachine.Change{
4141
Origin: &changeOriginEngine,
4242
Change: &statemachine.Change_AddGameEvent{

internal/app/rcon/server_autoref.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (s *AutoRefServer) handleClientConnection(conn net.Conn) {
9292
if _, ok := s.gcEngine.GetConfig().AutoRefConfigs[client.id]; !ok {
9393
cfg := new(engine.AutoRefConfig)
9494
cfg.GameEventBehavior = map[string]engine.AutoRefConfig_Behavior{}
95-
for _, event := range state.AllGameEvents() {
95+
for _, event := range state.GameEventsForBehaviorConfig() {
9696
cfg.GameEventBehavior[event.String()] = engine.AutoRefConfig_BEHAVIOR_ACCEPT
9797
}
9898
s.gcEngine.UpdateConfig(&engine.Config{

internal/app/state/gameevent.go

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,25 +44,40 @@ func (m GameEvent) SetByTeam(team Team) {
4444
return
4545
}
4646

47-
// AllGameEvents returns a list with all known game event types
48-
func AllGameEvents() (a []GameEvent_Type) {
47+
// GameEventsForBehaviorConfig returns a list with all game event types that should have configurable behavior
48+
func GameEventsForBehaviorConfig() (a []GameEvent_Type) {
4949
for t := range GameEvent_Type_name {
5050
eventType := GameEvent_Type(t)
5151
switch eventType {
52-
case GameEvent_UNKNOWN_GAME_EVENT_TYPE,
53-
GameEvent_PREPARED,
54-
GameEvent_INDIRECT_GOAL,
55-
GameEvent_CHIPPED_GOAL,
56-
GameEvent_KICK_TIMEOUT,
57-
GameEvent_ATTACKER_TOUCHED_OPPONENT_IN_DEFENSE_AREA,
58-
GameEvent_ATTACKER_TOUCHED_OPPONENT_IN_DEFENSE_AREA_SKIPPED,
59-
GameEvent_BOT_CRASH_UNIQUE_SKIPPED,
60-
GameEvent_BOT_PUSHED_BOT_SKIPPED,
61-
GameEvent_DEFENDER_IN_DEFENSE_AREA_PARTIALLY,
62-
GameEvent_MULTIPLE_PLACEMENT_FAILURES:
63-
// ignore
64-
default:
52+
case
53+
GameEvent_BALL_LEFT_FIELD_TOUCH_LINE,
54+
GameEvent_BALL_LEFT_FIELD_GOAL_LINE,
55+
GameEvent_AIMLESS_KICK,
56+
GameEvent_ATTACKER_TOO_CLOSE_TO_DEFENSE_AREA,
57+
GameEvent_DEFENDER_IN_DEFENSE_AREA,
58+
GameEvent_BOUNDARY_CROSSING,
59+
GameEvent_KEEPER_HELD_BALL,
60+
GameEvent_BOT_DRIBBLED_BALL_TOO_FAR,
61+
GameEvent_BOT_PUSHED_BOT,
62+
GameEvent_BOT_HELD_BALL_DELIBERATELY,
63+
GameEvent_BOT_TIPPED_OVER,
64+
GameEvent_ATTACKER_TOUCHED_BALL_IN_DEFENSE_AREA,
65+
GameEvent_BOT_KICKED_BALL_TOO_FAST,
66+
GameEvent_BOT_CRASH_UNIQUE,
67+
GameEvent_BOT_CRASH_DRAWN,
68+
GameEvent_DEFENDER_TOO_CLOSE_TO_KICK_POINT,
69+
GameEvent_BOT_TOO_FAST_IN_STOP,
70+
GameEvent_BOT_INTERFERED_PLACEMENT,
71+
GameEvent_POSSIBLE_GOAL,
72+
GameEvent_GOAL,
73+
GameEvent_INVALID_GOAL,
74+
GameEvent_ATTACKER_DOUBLE_TOUCHED_BALL,
75+
GameEvent_PLACEMENT_SUCCEEDED,
76+
GameEvent_PENALTY_KICK_FAILED,
77+
GameEvent_NO_PROGRESS_IN_GAME:
6578
a = append(a, eventType)
79+
default:
80+
// ignore
6681
}
6782
}
6883
return

0 commit comments

Comments
 (0)