File tree Expand file tree Collapse file tree 2 files changed +28
-3
lines changed
internal/app/statemachine Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -6,8 +6,13 @@ import (
6
6
)
7
7
8
8
func (s * StateMachine ) processChangeAddYellowCard (newState * state.State , change * AddYellowCard ) (changes []* Change ) {
9
- newState .TeamInfo (* change .ForTeam ).AddYellowCard (s .gameConfig .YellowCardDuration , change .CausedByGameEvent )
10
- s .updateMaxBots (newState )
9
+ if activeYellowCards (newState .TeamInfo (* change .ForTeam ).YellowCards ) >= 2 {
10
+ changes = append (changes , s .multipleYellowCardsChange (* change .ForTeam ))
11
+ } else {
12
+ newState .TeamInfo (* change .ForTeam ).AddYellowCard (s .gameConfig .YellowCardDuration , change .CausedByGameEvent )
13
+ s .updateMaxBots (newState )
14
+ }
15
+
11
16
return
12
17
}
13
18
@@ -40,3 +45,22 @@ func activeYellowCards(cards []*state.YellowCard) (count int32) {
40
45
}
41
46
return
42
47
}
48
+
49
+ // multipleYellowCardsChange creates a multiple cards event change
50
+ func (s * StateMachine ) multipleYellowCardsChange (byTeam state.Team ) * Change {
51
+ eventType := state .GameEvent_MULTIPLE_CARDS
52
+ return & Change {
53
+ Change : & Change_AddGameEvent {
54
+ AddGameEvent : & AddGameEvent {
55
+ GameEvent : & state.GameEvent {
56
+ Type : & eventType ,
57
+ Event : & state.GameEvent_MultipleCards_ {
58
+ MultipleCards : & state.GameEvent_MultipleCards {
59
+ ByTeam : & byTeam ,
60
+ },
61
+ },
62
+ },
63
+ },
64
+ },
65
+ }
66
+ }
Original file line number Diff line number Diff line change @@ -257,11 +257,12 @@ func addsYellowCard(gameEvent state.GameEvent_Type) bool {
257
257
return false
258
258
}
259
259
260
- // addsYellowCard checks if the game event adds a yellow card
260
+ // addsRedCard checks if the game event adds a red card
261
261
func addsRedCard (gameEvent state.GameEvent_Type ) bool {
262
262
switch gameEvent {
263
263
case
264
264
state .GameEvent_DEFENDER_IN_DEFENSE_AREA ,
265
+ state .GameEvent_MULTIPLE_CARDS ,
265
266
state .GameEvent_UNSPORTING_BEHAVIOR_MAJOR :
266
267
return true
267
268
}
You can’t perform that action at this time.
0 commit comments