Minigames: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
| No edit summary | |||
| Line 30: | Line 30: | ||
|    SERVER:          psMiniGameSession::Send() |    SERVER:          psMiniGameSession::Send() | ||
|    CLIENT: ReceiveMGBoardMessage() |    CLIENT: ReceiveMGBoardMessage() | ||
|   CLIENT: UpsGameBoard::HandleMessage() | |||
|   CLIENT: UpsGameBoard::UpdateBoard() | |||
Latest revision as of 23:43, 21 December 2022
All minigames use GameboardsTable to define the basics of the game.
Minigamemanager is called by the client to initiate a game with the following server-side methods
 MiniGameManager::HandleStartGameRequest()
      psMiniGameSession::AddPlayer()
        psMiniGameSession::SendInitialMGSetup()
          GetPSController()->ReceiveMGInitialBoardSetup()
Then the client receives the request in PlayerController and displays the minigame window, and differs by game type (see below)
Available minigame types
Dice cup game
Has GameboardsTable.gameType = "dicecup"
Board game
Has GameboardsTable.gameType = "gameboard"
Client side we call
UpsGameBoard::HandleMessage()
   UpsGameBoard::UpdateBoard()
      UpsGameBoard::SetupBoard()
Then when the client executes a move, this happens
CLIENT: UpsGameTile::NativeOnDrop() CLIENT: UpsGameBoard::DropPiece() SERVER: playercontroller::HandleGameUpdate() SERVER: MiniGameManager::HandleGameUpdate() SERVER: psMiniGameSession::Update() SERVER: psMiniGameSession::Broadcast() SERVER: psMiniGameSession::Send() CLIENT: ReceiveMGBoardMessage() CLIENT: UpsGameBoard::HandleMessage() CLIENT: UpsGameBoard::UpdateBoard()