All Classes and Interfaces

Class
Description
Enum used to represent islandFieldPanel's status
This class represents one of the 10 player owned assistant cards
 
Character Card#1 In setup, draw 4 Students and place them on this card.
This test set verifies that character card 01 is able to hold, move and identify students.
EFFECT: During this turn, you take control of any number of Professors even if you have the same number of Students as the player who currently controls them.
 
EFFECT: Choose an Island and resolve the Island as if Mother Nature had ended her movement there.
This test set verifies that the card 03 is able to change the control of an island leaving mother nature still
EFFECT: You may move Mother Nature up to 2 additional Islands than is indicated by the Assistant card you've played.
In Setup, put the 4 No Entry tiles on this card.
This test set verifies that character card 05 is able to manage, receive and give no entry tiles.
EFFECT: When resolving a Conquering on an Island, Towers do not count towards influence.
 
In Setup, draw 6 Students and place them on this card
EFFECT: you may take up to 3 students from this card and replace them with the same number of Students from your Entrance
This test set verifies that character card 07 is able to manage, receive and give students.
EFFECT: During the influence calculation this turn, you count as having 2 more influence
EFFECT: Choose a color of Student: during the influence calculation this turn, that color adds no influence
This test set verifies that character card 09 is able to change the way influence is calculated selecting a colour that will not be counted for the influence calculation
EFFECT: You may exchange up to 2 Students between your entrance and your Dining Room
This test set verifies that character card 10 is able to swap up to 2 students from entrance to dining room and vice-versa; the set also covers the edge cases related to invalid actions from the players.
In Setup, draw 4 Students and place them on this card
EFFECT: Take 1 Student from this card and place it in your Dining Room.
 
EFFECT: Choose a type of Student: every player (including yourself) must return 3 Students of that type from their Dining Room to the bag.
 
 
Each CharacterCard can use many input parameters.
Class used to draw the 3 characterCards and their eventual contents; it also handles all 12 characterCards actions.
Any GameMode.ADVANCED game must start with a selection of 3 different CharacterCards and this class is the generator of such cards.
in order to construct each card, the constructor must fall under an interface to be used in a lambda call.
Listener responsible for restricting the maximum number of checkboxes that can be selected
PlayerAction allowing a user to choose one of many cloud tiles present on the gameboard.
 
 
This class runs game's cli version and to do that it initializes client's view and runs 2 different threads: One for writing elements on CLI and send message to Server (CliWriter class) One for receiving responses from Server and update Client's view (ClientReader class)
This Response is generated when a lobby's client connects and is sent to the lobby's clients.
This Event is generated when a lobby's client connects and is sent to the lobby's clients.
This Response is generated when a lobby's client disconnected and is sent to the lobby's clients.
This Event is generated when a lobby's client disconnects and is sent to the lobby's clients.
Represents an event to be processed by the LobbyServer.
 
An extension of Message that can be used as ClientEvent
This class contains the status of Client inside the Server and is responsible for printing UI elements in to the CLI
This class takes Client's commands from terminal, provides support to the user and sends the command to the Server by using the SocketWrapper
The Cloud class is used to replenish pawns in the entrance fields of the PlayerBoard.getEntranceStudents()
 
Class used for printing all game's clouds and their students.
 
CloudUI is a graphical representation (as a String data structure) useful to print multiple cloud components on the console.
This Event is generated when a lobby's client connects or disconnects and is sent to the lobby's clients.
Represents a Client triying to connect to a Lobby
Signals there was an error in the container part or function of an object
Context holds the information needed to relate the player, the server connection and the player's personal graphical representation.
This is the Controller of the whole game.
 
Represents a Client triying to create a new Lobby
Represents a Client triying to set its nickname after a successful connection to the server.
This enumeration is used by MoveStudent to direct a pawn from the entrance to the correct destination
Signals there was an error while validating part of a contract.
CharacterCards may impose some non immediate effects to resolve during the turn.
Signals there was an error in the container part or function of an object.
Panel showing game's winner(s); it allows user to close the game or join a new lobby
The Action phase is a lengthy one and its length cannot be determined.
 
Signals there was an error while executing of an operation.
Represents a Response that is always sent with the same StatusCode.Success
Signals there was an error while attempting to carry out an operation.
Signals there was an error in the container part or function of an object.
Class container of all others Panel inside a JTabbedPane
Represents the game mode of the game.
This Response is generated when a lobby's game is over and is sent to the lobby's clients.
This Event is generated when a lobby's game is detected to have ended.
Represent the Phase of a turn.
This Response is generated when a lobby's game is started and is sent to the lobby's clients.
This Event is generated when a lobby's game is started.
Panel that allows lobby's admin to start the game (is also possible to select gameMode) after it has been filled
GameUI is a graphical representation (as a String data structure) useful to print CloudUI and multiple IslandUI components next to each other on the console.
Signals there was an error while validating part of a contract.
Run game's gui version by creating a new Context and a new Window
Handles messages received from server and keep a record of current player's actions executed during its turn
A message used to keep the connection alive, used in KeepAliveSocketWrapper
an auto sender of HeartBeatMessage at regular intervals
Timeout timer task waiting to close the socket in case it is not cancelled in time.
 
InfoUI is a graphical informative component (as a String data structure) useful to print details about the TurnOrder and the StudentBag
Signals there was an error while validating part of a contract.
Signals there was an error in the container part or function of an object.
Signals there was error an while validating part of a contract.
A Response used by the server to notify the client a ClientRequest was uninterpretable.
Islands are containers of PawnColours and Tower.The islands can be grouped through IslandGroup
All IslandGroups in the game need to be contained in a circular structure.
Class necessary to print all the islands on GUI and perform all player's action that involve an island or islandGroup
 
Every Island can be contained in an IslandGroup and multiple Islands can be grouped up.
 
IslandUI allows to print a placeholder containing an IslandGroup representation or an empty row which could be needed if there was previously an IslandGroup on the console which does not exist anymore in the model
A SocketWrapper that also takes care of sending or responding to HeartBeatMessage, keeping the connection active so long as the endpoint proves to be active
Multiple LobbyServer instances will need to communicate to run the game.
This Response is generated when a lobby is closed and is sent to the lobby's clients.
This Event is generated when a lobby gets closed.
A Response to represent the output the controller gave on a previous ConnectLobbyRequest or CreateLobbyRequest
Information about a Lobby to be shared with clients
JTabbedPane that allows the user to create or connect to a lobby
Handler of game events, responsible for communication of game related information with a single client.
Represents the various stages of the connection between client and server
A Response to represent the output the controller gave on a previous DeclarePlayerRequest
Wrapper around Logger for easy logging
main class of the project, call the Main.main(java.lang.String...) function to start the whole thing up
Represent a serializable entity to be sent over the network
As the name suggests, this class is the game's Model.
 
This Response is generated upon an edit of the game's model.
This class is used by the controller to enact the game logic and (optionally) notifies the view (ie the server) whenever a meaningful change to the underlying data is carried out.
An interface that covers methods trying to access the Model.
This class is used by MoveStudent to direct a pawn from the entrance to the correct destination
This PlayerAction allows the caller to move the mother nature entity forward by a specified amount.
 
This PlayerAction allows the caller to move a single student from the entrance to the school to an island or a dining room table.
 
This is the representation of the game's No entry tile An IslandGroup may receive a reference to an object of this type through IslandGroup.addNoEntry(NoEntryTile).
 
Signals there was an error while executing or attempting to start execution of an operation.
This class takes inspiration from Optional but adds serialization support and foregoes some lesser used methods in some instances.
A Pair represents a set of 2 objects linked in some way
Represents the colour of many pawns on the game boards, like Students and Teachers.
This PlayerAction allows the caller to select the desired assistant card to be played this round.
 
 
 
The PlayerAction object is the definition of a user's intention.
A Response to represent the output the controller gave on a previous PlayerActionRequest
Represents a Client attempting to run a PlayerAction on the game
This class represents the Player's part of the board
Class containing all the elements necessary to graphically represent both the player’s playerBoard and the assistant cards still usable.
 
PlayerBoardUI allows to print all the information representing the PlayerBoard.
Any message sent by the WelcomeServer or LobbyServer will inherit this class.
This Event is generated when a SocketWrapper gets closed.
Given a SocketWrapper and a BlockingQueue<ClientEvent>, moves only the ClientEvent received on the socket to the queue.
Wrapper around a Socket transfering Messages, removes most of the overhead of handling the connection.
Represents a Client triying to start a game in a Lobby
Panel that allows the user to connect to a Server by selecting ip address and port
A CharacterCard that implements an effect linked to some internal state
A CharacterCard that implements an effect NOT linked to some internal state
StatefulEffect cards contain an internal state, this Enumeration allows for simple identification of the internal state through StatefulEffect.getStateType()
StatusCode represents the a status.
The StudentBag contains a limited number of PawnColour ordered randomly.
 
Symbols holds constants and methods used by the CLI.
 
There are only a handful of possible teams in a game.
Maps the players in the model to their respective teams and TowerStorage
Allows for the representation of the game's tower pawn
Towers are bound to a colour, and each colour is bound to a team.
 
A container for a set of Towers of the same TowerColour
 
 
Represents the order in which players will play a round, and organizes the next round based on played AssistantCards
 
Panel that allows user to choose his username
This class contains various static functions useful for more than one purpose inside the code.
 
A Response to represent the start of a connection with a WelcomeServer.
This is the main server thread.
Window creates the top-level container (Java Swing component) onto which the game will be rendered