Product selection message handler

This commit is contained in:
Eden Kirin
2023-05-11 15:08:24 +02:00
parent 69e087c0c9
commit 9151aa3e1e
8 changed files with 113 additions and 89 deletions

View File

@ -170,11 +170,11 @@ package Masterpiece #seashell {
usecase Game as "Game Engine"
usecase WS as "WS Server"
}
usecase Vis as "Visualisation\nService"
usecase Vis as "Flutter\nVisualisation\nService"
}
usecase ExtVis1 as "Visualisation\nService"
usecase ExtVis2 as "Visualisation\nService"
usecase ExtVis1 as "Visualisation\nClient"
usecase ExtVis2 as "Visualisation\nClient"
P1 -left-> API: REST API
P2 -left-> API: REST API
@ -204,41 +204,58 @@ Game ->o WS: Send initial state
Client1 ->o WS: Client connect
activate WS #coral
WS -> Client1: Game state
deactivate
deactivate WS
Client2 ->o WS: Client connect
activate WS #coral
WS -> Client2: Game state
deactivate
deactivate WS
loop #lightyellow On game state change
Game ->o WS: Game state
activate WS #coral
WS o-> Client1: Game state
WS o-> Client2: Game state
deactivate
deactivate WS
end
== Product purchase mode ==
== Player reached destination ==
Game -> WS: Purchase start
activate WS #coral
WS o-> Client1: Purchase start
WS o-> Client2: Purchase start
deactivate
Game -> Game: Lock game for other players
activate Game
Game -> WS: Player reached destination
activate WS #coral
WS o-> Client1: Select product
WS o-> Client2: Select product
deactivate WS
deactivate Game
loop #lightyellow Purchase countdown timer
Game ->o WS: Timer count down
loop #lightyellow Product select countdown timer (60s)
Game ->o WS: Timer timeout
activate Game
activate WS #coral
WS o-> Client1: Purchase time left
WS o-> Client2: Purchase time left
deactivate
WS o-> Client1: Cancel selection
WS o-> Client2: Cancel selection
deactivate WS
Game -> Game: Unlock game
deactivate Game
end
Game -> WS: Purchase done
Client1 -> WS: Product selected
activate WS #coral
WS o-> Client1: Purchase done
WS o-> Client2: Purchase done
deactivate
WS o-> Game: Product selected
activate Game
WS o-> Client2: Product selected
deactivate WS
Game -> Game: Unlock game
Game -> WS: Game state
activate WS #coral
WS o-> Client1: Game state
WS o-> Client2: Game state
deactivate WS
deactivate Game
```