Game of Ur 0.3.3
This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.
Loading...
Searching...
No Matches
PlayerLocal Class Reference

Definition of the aspect class representing a player playing the Game of Ur locally. More...

#include <ur_player_local.hpp>

Inheritance diagram for PlayerLocal:

Public Member Functions

std::shared_ptr< BaseSimObjectAspect > clone () const override
 

Static Public Member Functions

static std::string getSimObjectAspectTypeName ()
 
static std::shared_ptr< BaseSimObjectAspect > create (const nlohmann::json &jsonAspectProperties)
 

Public Attributes

ToyMaker::SignalObserver< GamePhaseDatamObserveMovePrompted
 Observer of prompt move events generated by the game's UrController.
 
ToyMaker::SignalObserver< PieceTypeID, glm::u8vec2 > mObservePieceLaunchAttempted
 Observer of the launch piece event generated by the game's UI layer.
 
ToyMaker::SignalObserver< PieceIdentitymObserveMovePieceAttempted
 Observer of the move piece event, generated by the game's 3D scene layer.
 
ToyMaker::SignalObserver mObserveEndTurnAttempted
 Observer of the end turn event, generated by the game's UI layer.
 
ToyMaker::SignalObserver mObserveDiceRollAttempted
 Observerr of the dice roll event, generated by the game's UI layer.
 
ToyMaker::Signal< PlayerIDmSigControlInterface {*this, "ControlInterface"}
 Signal emitted when this player has been prompted for an action, and should take control of the UI and 3D scene of the game.
 

Private Member Functions

void onActivated () override
 Prompts UrController to create and hand over controls that this player can then use to interact with (the data model of) the game.
 
void onLaunchPieceAttempted (PieceTypeID pieceType, glm::u8vec2 location)
 Attempts to launch a game piece to some location.
 
void onNextTurnAttempted ()
 Attempts to advance the game by a turn, ending the current turn.
 
void onDiceRollAttempted ()
 Attempts to roll the dice.
 
void onMoveBoardPieceAttempted (PieceIdentity piece)
 Attempts to move a piece situated somewhere on the board to a new location based on the current dice state.
 
void onMovePrompted (GamePhaseData phaseData)
 Callback issued by UrController when this player is required to take action.
 

Private Attributes

std::string mControllerPath {}
 The path to the UrController in this scene, from which this aspect will receive its game controls.
 
std::unique_ptr< UrPlayerControlsmControls {}
 The controls returned by UrController, used to interact with the game data model.
 

Detailed Description

Definition of the aspect class representing a player playing the Game of Ur locally.

This player uses this application's UI and input system to interact with the game data model.

Member Function Documentation

◆ onLaunchPieceAttempted()

void PlayerLocal::onLaunchPieceAttempted ( PieceTypeID pieceType,
glm::u8vec2 location )
private

Attempts to launch a game piece to some location.

Parameters
pieceTypeThe type of piece being launched.
locationThe location to which the piece should be launched.

◆ onMoveBoardPieceAttempted()

void PlayerLocal::onMoveBoardPieceAttempted ( PieceIdentity piece)
private

Attempts to move a piece situated somewhere on the board to a new location based on the current dice state.

Parameters
pieceThe piece to be moved.

◆ onMovePrompted()

void PlayerLocal::onMovePrompted ( GamePhaseData phaseData)
private

Callback issued by UrController when this player is required to take action.

Parameters
phaseDataThe current phase of the game.

Member Data Documentation

◆ mObserveDiceRollAttempted

ToyMaker::SignalObserver PlayerLocal::mObserveDiceRollAttempted
Initial value:
{
*this, "DiceRollAttemptedObserved",
[this]() { this->onDiceRollAttempted(); }
}
void onDiceRollAttempted()
Attempts to roll the dice.
Definition ur_player_local.cpp:31

Observerr of the dice roll event, generated by the game's UI layer.

◆ mObserveEndTurnAttempted

ToyMaker::SignalObserver PlayerLocal::mObserveEndTurnAttempted
Initial value:
{
*this, "NextTurnAttemptedObserved",
[this]() { this->onNextTurnAttempted(); }
}
void onNextTurnAttempted()
Attempts to advance the game by a turn, ending the current turn.
Definition ur_player_local.cpp:27

Observer of the end turn event, generated by the game's UI layer.

◆ mObserveMovePieceAttempted

ToyMaker::SignalObserver<PieceIdentity> PlayerLocal::mObserveMovePieceAttempted
Initial value:
{
*this, "MovePieceAttemptedObserved",
[this](PieceIdentity piece) { this->onMoveBoardPieceAttempted(piece); }
}
void onMoveBoardPieceAttempted(PieceIdentity piece)
Attempts to move a piece situated somewhere on the board to a new location based on the current dice ...
Definition ur_player_local.cpp:35
Data uniquely identifying a piece used in the game.
Definition piece.hpp:29

Observer of the move piece event, generated by the game's 3D scene layer.

◆ mObserveMovePrompted

ToyMaker::SignalObserver<GamePhaseData> PlayerLocal::mObserveMovePrompted
Initial value:
{
*this, "MovePromptedObserved",
[this](GamePhaseData phaseData) {this->onMovePrompted(phaseData);}
}
void onMovePrompted(GamePhaseData phaseData)
Callback issued by UrController when this player is required to take action.
Definition ur_player_local.cpp:39
Data returned by GameOfUrModel when queried about the current phase of the game.
Definition model.hpp:112

Observer of prompt move events generated by the game's UrController.

◆ mObservePieceLaunchAttempted

ToyMaker::SignalObserver<PieceTypeID, glm::u8vec2> PlayerLocal::mObservePieceLaunchAttempted
Initial value:
{
*this, "LaunchPieceAttemptedObserved",
[this](PieceTypeID pieceType, glm::u8vec2 location) { this->onLaunchPieceAttempted(pieceType, location); }
}
void onLaunchPieceAttempted(PieceTypeID pieceType, glm::u8vec2 location)
Attempts to launch a game piece to some location.
Definition ur_player_local.cpp:23
PieceTypeID
Enum listing the different types of pieces present in the game.
Definition piece_type_id.hpp:22

Observer of the launch piece event generated by the game's UI layer.


The documentation for this class was generated from the following files: