java.lang.Object
polimi.ingsw.am21.codex.view.TUI.utils.Cli
All Implemented Interfaces:
Remote, GameEventListener, RemoteGameEventListener, View

public class Cli extends Object implements View
  • Constructor Details

    • Cli

      public Cli()
  • Method Details

    • setClient

      public void setClient(ClientConnectionHandler client)
      Specified by:
      setClient in interface View
    • getLocalModel

      public LocalModelContainer getLocalModel()
      Specified by:
      getLocalModel in interface View
    • postNotification

      public void postNotification(NotificationType notificationType, String message)
      Specified by:
      postNotification in interface View
    • postNotification

      public void postNotification(Notification notification)
      Specified by:
      postNotification in interface View
    • postNotification

      public void postNotification(NotificationType notificationType, String[] parts, Colorable colorable, int colorableIndex)
      Specified by:
      postNotification in interface View
    • printPrompt

      public void printPrompt()
    • printUpdate

      public void printUpdate(String string)
    • listGames

      public void listGames()
      Specified by:
      listGames in interface View
    • displayException

      public void displayException(Exception e)
      Specified by:
      displayException in interface View
    • drawAvailableGames

      public void drawAvailableGames()
      Specified by:
      drawAvailableGames in interface View
    • drawAvailableTokenColors

      public void drawAvailableTokenColors()
      Specified by:
      drawAvailableTokenColors in interface View
    • drawLobby

      public void drawLobby()
      Specified by:
      drawLobby in interface View
    • drawGameBoard

      public void drawGameBoard()
      Don't use this in CLI, just draw the individual components when needed
      Specified by:
      drawGameBoard in interface View
    • drawLeaderBoard

      public void drawLeaderBoard()
      Specified by:
      drawLeaderBoard in interface View
    • drawPlayerBoards

      public void drawPlayerBoards()
      Specified by:
      drawPlayerBoards in interface View
    • drawPlayerBoard

      public void drawPlayerBoard(String nickname, int verticalOffset, int horizontalOffset)
      Specified by:
      drawPlayerBoard in interface View
    • drawGame

      public void drawGame()
      Specified by:
      drawGame in interface View
    • drawGameOver

      public void drawGameOver()
      Specified by:
      drawGameOver in interface View
    • drawCard

      public void drawCard(Card card)
      Specified by:
      drawCard in interface View
    • drawHand

      public void drawHand()
      Description copied from interface: View
      Displays the hand of the client player
      Specified by:
      drawHand in interface View
    • drawPairs

      public void drawPairs()
      Description copied from interface: View
      Displays the pairs the players can draw from
      Specified by:
      drawPairs in interface View
    • drawObjectiveCardChoice

      public void drawObjectiveCardChoice()
      Specified by:
      drawObjectiveCardChoice in interface View
    • drawStarterCardSides

      public void drawStarterCardSides()
      Specified by:
      drawStarterCardSides in interface View
    • drawChatMessage

      public void drawChatMessage(ChatMessage message)
      Specified by:
      drawChatMessage in interface View
    • drawCommonObjectiveCards

      public void drawCommonObjectiveCards()
      Specified by:
      drawCommonObjectiveCards in interface View
    • drawPlayerObjective

      public void drawPlayerObjective()
      Specified by:
      drawPlayerObjective in interface View
    • drawCardDecks

      public void drawCardDecks()
      Description copied from interface: View
      Displays the cards decks to draw from
      Specified by:
      drawCardDecks in interface View
    • lobbyInfo

      public void lobbyInfo(LobbyUsersInfo usersInfo)
      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 interface GameEventListener
      Specified by:
      lobbyInfo in interface RemoteGameEventListener
      Specified by:
      lobbyInfo in interface View
      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.
    • gameHalted

      public void gameHalted(String gameID)
      Specified by:
      gameHalted in interface GameEventListener
      Specified by:
      gameHalted in interface RemoteGameEventListener
    • gameResumed

      public void gameResumed(String gameID)
      Specified by:
      gameResumed in interface GameEventListener
      Specified by:
      gameResumed in interface RemoteGameEventListener
    • userContext

      public void userContext(FullUserGameContext context)
      Specified by:
      userContext in interface GameEventListener
      Specified by:
      userContext in interface RemoteGameEventListener
    • drawNicknameChoice

      public void drawNicknameChoice()
      Specified by:
      drawNicknameChoice in interface View
    • 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 interface GameEventListener
      Specified by:
      cardPlaced in interface RemoteGameEventListener
      Specified by:
      cardPlaced in interface View
      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.
    • playerScoresUpdate

      public void playerScoresUpdate(Map<String,Integer> newScores)
      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 interface GameEventListener
      Specified by:
      playerScoresUpdate in interface RemoteGameEventListener
      Specified by:
      playerScoresUpdate in interface View
      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.
    • playerJoinedLobby

      public void playerJoinedLobby(String gameId, UUID connectionID)
      Description copied from interface: RemoteGameEventListener
      Interface method used to process the event of a player joining a game lobby.
      Specified by:
      playerJoinedLobby in interface GameEventListener
      Specified by:
      playerJoinedLobby in interface RemoteGameEventListener
      Specified by:
      playerJoinedLobby in interface View
      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.
    • 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 interface GameEventListener
      Specified by:
      changeTurn in interface RemoteGameEventListener
      Specified by:
      changeTurn in interface View
      Parameters:
      gameId - The unique identifier of the game that has just ended.
      playerNickname - The player that has just finished their turn
      playerIndex - 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.