java.lang.Object
javafx.application.Application
polimi.ingsw.am21.codex.view.GUI.Gui
- All Implemented Interfaces:
Remote
,GameEventListener
,RemoteGameEventListener
,View
-
Nested Class Summary
Nested classes/interfaces inherited from class javafx.application.Application
javafx.application.Application.Parameters
-
Field Summary
Fields inherited from class javafx.application.Application
STYLESHEET_CASPIAN, STYLESHEET_MODENA
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
cardPlaced
(String gameId, String playerId, Integer playerHandCardNumber, Integer cardId, CardSideType side, Position position, int newPlayerScore, Map<ResourceType, Integer> updatedResources, Map<ObjectType, Integer> updatedObjects, Set<Position> availableSpots, Set<Position> forbiddenSpots) Interface method used to process the event of the current player placing a card on their playerboard.void
changeTurn
(String gameId, String playerNickname, Integer playerIndex, Boolean isLastRound, Set<Position> availableSpots, Set<Position> forbiddenSpots, Integer resourceDeckTopCardId, Integer goldDeckTopCardId) Interface method used to process the event of the player ending their turn choosing not to draw a card.void
chatMessage
(String gameID, ChatMessage message) Interface method used to process the event of a player sending a chat message in the game they're in.void
displayException
(Exception exception) Displays an exception to the uservoid
Draw the available games in the lobby menuvoid
Draw a list of available token colors for the player to choose fromvoid
void
Draw the card decks in the gameboardvoid
drawChat()
Load the chat scene for chat messages to be drawn in.void
drawChatMessage
(ChatMessage message) Draw a chat message in the chat windowvoid
Draw the common objective cards in the gameboardvoid
drawGame()
Draw the playerboard and gameboard scenes after every player has finished in the lobbyvoid
Draw the gameboard contents.void
Display the game is over and the final leaderboardvoid
drawHand()
Draws the hand of the playervoid
Draw the leaderboard of the game, display the players and their pointsvoid
Draw the current status of the lobby and its connected players alongside the lobby windowvoid
Draw the scene for the player to choose a nicknamevoid
Draw the two objective cards the player can choose from in the lobbyvoid
Draws the pairs of resource and gold cards which the player can draw fromvoid
drawPlayerBoard
(String nickname) Draw the placed cards of the given playervoid
drawPlayerBoard
(String nickname, int verticalOffset, int horizontalOffset) void
void
Draw the player objective card in its player board alongside its handvoid
drawResourcesAndObjects
(LocalPlayer player) Draw a map of the given player available resources and objects to the playerBoardvoid
Draw the sides of the starter card the player can choose from in the lobbyvoid
gameCreated
(String gameId, int currentPlayers, int maxPlayers) Interface method used to process the game creation event.void
gameDeleted
(String gameId) Interface method used to process the game deletion event.void
gameHalted
(String gameID) void
gameOver()
Interface method used to process the event of the game ending.void
gameResumed
(String gameID) void
gameStarted
(String gameId, GameInfo gameInfo) Interface method used to process the event of a game starting.static Gui
void
void
lobbyInfo
(LobbyUsersInfo usersInfo) Interface method used to process the event of a player joining a game lobby when there are other players already inside it that may or may not have already completed the process of joining the game.static void
void
playerChoseObjectiveCard
(String gameId, UUID connectionID, String nickname) Interface method used to process the event of a player choosing their objective card.void
playerConnectionChanged
(UUID connectionID, String nickname, GameController.UserGameContext.ConnectionStatus status) Interface method used to process the event of a player's connection status changing.void
playerJoinedLobby
(String gameId, UUID connectionID) Interface method used to process the event of a player joining a game lobby.void
playerLeftLobby
(String gameId, UUID connectionID) Interface method used to process the event of a player leaving a game lobby.void
playerScoresUpdate
(Map<String, Integer> newScores) Interface method used to process the event of the player's score being updated after the game ends and secret and common objectives are evaluated.void
playerSetNickname
(String gameId, UUID connectionID, String nickname) Interface method used to process the event of a player choosing their nickname.void
playerSetToken
(String gameId, UUID connectionID, String nickname, TokenColor token) Interface method used to process the event of a player choosing their token color.void
postNotification
(Notification notification) Posts a push notification to the uservoid
postNotification
(NotificationType notificationType, String message) Posts a push notification to the uservoid
postNotification
(NotificationType notificationType, String[] messages, Colorable colorable, int colorableIndex) void
remainingRounds
(String gameID, int remainingRounds) Interface method used to process the event of the number of remaining rounds being updated or set when winning score is reached by any of the players.void
setClient
(ClientConnectionHandler client) void
start
(javafx.stage.Stage primaryStage) void
userContext
(FullUserGameContext context) void
winningPlayer
(String nickname) Interface method used to process and display the winning player of the game.Methods inherited from class javafx.application.Application
getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface polimi.ingsw.am21.codex.view.View
changeTurn, drawPlayerBoard, drawPlayerBoard, getObjectiveCards, getStarterCard, playerJoinedGame, refreshLobbies
-
Constructor Details
-
Gui
public Gui()
-
-
Method Details
-
getInstance
-
setClient
-
start
public void start(javafx.stage.Stage primaryStage) - Specified by:
start
in classjavafx.application.Application
-
getIsInitializedLatch
-
main
-
postNotification
Posts a push notification to the user- Specified by:
postNotification
in interfaceView
- Parameters:
notificationType
- the type of notification to display (CONFIRM, WARNING, ERROR, UPDATE, RESPONSE)message
- the message to display
-
postNotification
Posts a push notification to the user- Specified by:
postNotification
in interfaceView
- Parameters:
notification
- the notification to display
-
postNotification
public void postNotification(NotificationType notificationType, String[] messages, Colorable colorable, int colorableIndex) - Specified by:
postNotification
in interfaceView
-
displayException
Displays an exception to the user- Specified by:
displayException
in interfaceView
- Parameters:
exception
- the exception to display
-
drawAvailableGames
public void drawAvailableGames()Draw the available games in the lobby menu- Specified by:
drawAvailableGames
in interfaceView
-
drawAvailableTokenColors
public void drawAvailableTokenColors()Draw a list of available token colors for the player to choose from- Specified by:
drawAvailableTokenColors
in interfaceView
-
drawLobby
public void drawLobby()Draw the current status of the lobby and its connected players alongside the lobby window -
drawLeaderBoard
public void drawLeaderBoard()Draw the leaderboard of the game, display the players and their points- Specified by:
drawLeaderBoard
in interfaceView
-
drawResourcesAndObjects
Draw a map of the given player available resources and objects to the playerBoard- Parameters:
player
- the player whose resources are to be drawn
-
drawNicknameChoice
public void drawNicknameChoice()Draw the scene for the player to choose a nickname- Specified by:
drawNicknameChoice
in interfaceView
-
getLocalModel
- Specified by:
getLocalModel
in interfaceView
-
drawPlayerBoards
public void drawPlayerBoards()- Specified by:
drawPlayerBoards
in interfaceView
-
drawPlayerBoard
- Specified by:
drawPlayerBoard
in interfaceView
-
drawPlayerBoard
Draw the placed cards of the given player- Specified by:
drawPlayerBoard
in interfaceView
- Parameters:
nickname
- The nickname of the player whose playerboard is to be drawn
-
drawGame
public void drawGame()Draw the playerboard and gameboard scenes after every player has finished in the lobby -
drawGameBoard
public void drawGameBoard()Draw the gameboard contents.- Specified by:
drawGameBoard
in interfaceView
-
drawGameOver
public void drawGameOver()Display the game is over and the final leaderboard- Specified by:
drawGameOver
in interfaceView
-
drawCard
-
drawHand
public void drawHand()Draws the hand of the player -
drawPairs
public void drawPairs()Draws the pairs of resource and gold cards which the player can draw from -
drawObjectiveCardChoice
public void drawObjectiveCardChoice()Draw the two objective cards the player can choose from in the lobby- Specified by:
drawObjectiveCardChoice
in interfaceView
-
drawStarterCardSides
public void drawStarterCardSides()Draw the sides of the starter card the player can choose from in the lobby- Specified by:
drawStarterCardSides
in interfaceView
-
drawChat
public void drawChat()Load the chat scene for chat messages to be drawn in. -
drawChatMessage
Draw a chat message in the chat window- Specified by:
drawChatMessage
in interfaceView
-
drawCommonObjectiveCards
public void drawCommonObjectiveCards()Draw the common objective cards in the gameboard- Specified by:
drawCommonObjectiveCards
in interfaceView
-
drawPlayerObjective
public void drawPlayerObjective()Draw the player objective card in its player board alongside its hand- Specified by:
drawPlayerObjective
in interfaceView
-
drawCardDecks
public void drawCardDecks()Draw the card decks in the gameboard- Specified by:
drawCardDecks
in interfaceView
-
listGames
public void listGames() -
gameCreated
Description copied from interface:RemoteGameEventListener
Interface method used to process the game creation event.- Specified by:
gameCreated
in interfaceGameEventListener
- Specified by:
gameCreated
in interfaceRemoteGameEventListener
- Specified by:
gameCreated
in interfaceView
- Parameters:
gameId
- The unique identifier of the game that has just been created.currentPlayers
- The number of players currently in the game.maxPlayers
- The maximum number of players that can join the game.
-
gameDeleted
Description copied from interface:RemoteGameEventListener
Interface method used to process the game deletion event.- Specified by:
gameDeleted
in interfaceGameEventListener
- Specified by:
gameDeleted
in interfaceRemoteGameEventListener
- Specified by:
gameDeleted
in interfaceView
- Parameters:
gameId
- The identifier of the game that has just been deleted.
-
playerJoinedLobby
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player joining a game lobby.- Specified by:
playerJoinedLobby
in interfaceGameEventListener
- Specified by:
playerJoinedLobby
in interfaceRemoteGameEventListener
- Specified by:
playerJoinedLobby
in interfaceView
- Parameters:
gameId
- The identifier of the game lobby that the player has joined.connectionID
- The unique identifier of the player that has joined the lobby.
-
playerLeftLobby
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player leaving a game lobby.- Specified by:
playerLeftLobby
in interfaceGameEventListener
- Specified by:
playerLeftLobby
in interfaceRemoteGameEventListener
- Specified by:
playerLeftLobby
in interfaceView
- Parameters:
gameId
- The identifier of the game lobby that the player has left.connectionID
- The unique identifier of the player that has left the lobby.
-
playerSetToken
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player choosing their token color.- Specified by:
playerSetToken
in interfaceGameEventListener
- Specified by:
playerSetToken
in interfaceRemoteGameEventListener
- Specified by:
playerSetToken
in interfaceView
- Parameters:
gameId
- The identifier of the game lobby in which the player has set their token color.connectionID
- The unique identifier of the player that has set their token color.nickname
- The nickname of the player that has set their token color, if they have chosen it alreadytoken
- The token color that the player has chosen
-
playerSetNickname
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player choosing their nickname.- Specified by:
playerSetNickname
in interfaceGameEventListener
- Specified by:
playerSetNickname
in interfaceRemoteGameEventListener
- Specified by:
playerSetNickname
in interfaceView
- Parameters:
gameId
- The identifier of the game lobby in which the player has set their nickname.connectionID
- The unique identifier of the player that has set their nickname.nickname
- The nickname of the player that has set their nickname
-
playerChoseObjectiveCard
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player choosing their objective card.- Specified by:
playerChoseObjectiveCard
in interfaceGameEventListener
- Specified by:
playerChoseObjectiveCard
in interfaceRemoteGameEventListener
- Specified by:
playerChoseObjectiveCard
in interfaceView
- Parameters:
gameId
- The identifier of the game lobby in which the player has set their objective card.connectionID
- The unique identifier of the player that has set their objective card.nickname
- The nickname of the player that has set their objective card, if they have chosen it already
-
gameStarted
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a game starting.- Specified by:
gameStarted
in interfaceGameEventListener
- Specified by:
gameStarted
in interfaceRemoteGameEventListener
- Specified by:
gameStarted
in interfaceView
- Parameters:
gameId
- The identifier of the game that has just started.gameInfo
- The information about the game that has just started.
-
gameOver
public void gameOver()Description copied from interface:RemoteGameEventListener
Interface method used to process the event of the game ending.- Specified by:
gameOver
in interfaceGameEventListener
- Specified by:
gameOver
in interfaceRemoteGameEventListener
- Specified by:
gameOver
in interfaceView
-
playerScoresUpdate
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of the player's score being updated after the game ends and secret and common objectives are evaluated.- Specified by:
playerScoresUpdate
in interfaceGameEventListener
- Specified by:
playerScoresUpdate
in interfaceRemoteGameEventListener
- Specified by:
playerScoresUpdate
in interfaceView
- Parameters:
newScores
- A map containing the updated scores of the players. The key is the nickname of the player and the value is the new score of the player.
-
remainingRounds
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of the number of remaining rounds being updated or set when winning score is reached by any of the players.- Specified by:
remainingRounds
in interfaceGameEventListener
- Specified by:
remainingRounds
in interfaceRemoteGameEventListener
- Specified by:
remainingRounds
in interfaceView
- Parameters:
gameID
- The identifier of the game in which the number of remaining rounds was updated.remainingRounds
- The number of rounds remaining in the game.
-
winningPlayer
Description copied from interface:RemoteGameEventListener
Interface method used to process and display the winning player of the game.- Specified by:
winningPlayer
in interfaceGameEventListener
- Specified by:
winningPlayer
in interfaceRemoteGameEventListener
- Specified by:
winningPlayer
in interfaceView
- Parameters:
nickname
- The nickname of the player that has won the game.
-
playerConnectionChanged
public void playerConnectionChanged(UUID connectionID, String nickname, GameController.UserGameContext.ConnectionStatus status) Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player's connection status changing.- Specified by:
playerConnectionChanged
in interfaceGameEventListener
- Specified by:
playerConnectionChanged
in interfaceRemoteGameEventListener
- Specified by:
playerConnectionChanged
in interfaceView
- Parameters:
connectionID
- The unique identifier of the player whose connection status has changed. This is the identifier that the player uses to connect to the server.nickname
- The nickname of the player whose connection status has changed.status
- The new connection status of the player.
-
lobbyInfo
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player joining a game lobby when there are other players already inside it that may or may not have already completed the process of joining the game.- Specified by:
lobbyInfo
in interfaceGameEventListener
- Specified by:
lobbyInfo
in interfaceRemoteGameEventListener
- Specified by:
lobbyInfo
in interfaceView
- Parameters:
usersInfo
- The information about the users in the lobby. It includes the nickname, token color, objective card choice, starter card side chosen, and in-game status of each user.
-
chatMessage
Description copied from interface:RemoteGameEventListener
Interface method used to process the event of a player sending a chat message in the game they're in.- Specified by:
chatMessage
in interfaceGameEventListener
- Specified by:
chatMessage
in interfaceRemoteGameEventListener
- Specified by:
chatMessage
in interfaceView
- Parameters:
gameID
- The identifier of the game in which the chat message was sent.message
- The chat message that was sent by the player.
-
gameHalted
- Specified by:
gameHalted
in interfaceGameEventListener
- Specified by:
gameHalted
in interfaceRemoteGameEventListener
-
gameResumed
- Specified by:
gameResumed
in interfaceGameEventListener
- Specified by:
gameResumed
in interfaceRemoteGameEventListener
-
userContext
- Specified by:
userContext
in interfaceGameEventListener
- Specified by:
userContext
in interfaceRemoteGameEventListener
-
cardPlaced
public void cardPlaced(String gameId, String playerId, Integer playerHandCardNumber, Integer cardId, CardSideType side, Position position, int newPlayerScore, Map<ResourceType, Integer> updatedResources, Map<ObjectType, Integer> updatedObjects, Set<Position> availableSpots, Set<Position> forbiddenSpots) Description copied from interface:RemoteGameEventListener
Interface method used to process the event of the current player placing a card on their playerboard.- Specified by:
cardPlaced
in interfaceGameEventListener
- Specified by:
cardPlaced
in interfaceRemoteGameEventListener
- Specified by:
cardPlaced
in interfaceView
- Parameters:
gameId
- The identifier of the game in which the card was placed.playerId
- The identifier of the player that placed the card.playerHandCardNumber
- The number of the card in the player's hand that was placed.cardId
- The unique identifier of the card that was placed.side
- The side of the card that was placed.position
- The position on the player board where the card was placed.newPlayerScore
- The updated score of the player that placed the card.updatedResources
- The updated resources of the player that placed the card. The key is the type of resource and the value is the new amount of that resource.updatedObjects
- The updated objects of the player that placed the card. The key is the type of object and the value is the new amount of that object.availableSpots
- A set of positions that are available for the next player to place a card.forbiddenSpots
- A set of positions that are forbidden for the next player to place a card. This set is used to display the forbidden spots on the gameboard.
-
changeTurn
public void changeTurn(String gameId, String playerNickname, Integer playerIndex, Boolean isLastRound, Set<Position> availableSpots, Set<Position> forbiddenSpots, Integer resourceDeckTopCardId, Integer goldDeckTopCardId) Description copied from interface:RemoteGameEventListener
Interface method used to process the event of the player ending their turn choosing not to draw a card. This possibility is given by the fact that the decks might be empty, A player can choose not to draw in their last turn if they prefer not to draw from the pairs available on the gameboard- Specified by:
changeTurn
in interfaceGameEventListener
- Specified by:
changeTurn
in interfaceRemoteGameEventListener
- Specified by:
changeTurn
in interfaceView
- Parameters:
gameId
- The unique identifier of the game that has just ended.playerNickname
- The player that has just finished their turnplayerIndex
- The index of the player that has just finished their turn in the list of players.isLastRound
- A boolean indicating if this is the last round of the game.availableSpots
- A set of positions that are available for the next player to place a card.forbiddenSpots
- A set of positions that are forbidden for the next player to place a card.resourceDeckTopCardId
- The unique identifier of the top card in the resource deck.goldDeckTopCardId
- The unique identifier of the top card in the gold deck.
-