Brunot
Loading...
Searching...
No Matches
sys::PlayerTurn Class Reference

#include <PlayerTurn.h>

Inheritance diagram for sys::PlayerTurn:
[legend]
Collaboration diagram for sys::PlayerTurn:
[legend]

Public Member Functions

 PlayerTurn ()
 ~PlayerTurn () override=default
 PlayerTurn (const PlayerTurn &other)=default
 PlayerTurn (PlayerTurn &&other) noexcept=default
auto operator= (const PlayerTurn &other) -> PlayerTurn &
auto operator= (PlayerTurn &&other) noexcept -> PlayerTurn &=default
auto clone () const -> std::unique_ptr< GameObject > override
 makes a copy a GameObject even if it's held polymorphically
auto onUpdate (float dt) -> void override
 called once every frame.
auto systemShowMenu () -> void override
 Specific systems should override this function to show their specific menu for the system.
auto endWindow () -> void override
 currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
auto onRender () -> void override
 called every frame after update has been called for every object.
auto onSceneStart (const std::string &sceneName) -> void override
 Hook that is called before the first frame a scene is run, but after the entire scene is loaded into the engine To receive the hook, simply override the function in your class.
auto onSceneExit (const std::string &sceneName) -> void override
 Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class.
auto load (const Stream &stream) -> void override
 Implementations will load the state of a GameObject from a th::Json Object.
auto save (Stream &stream) const -> void override
 Implementations will load the state of a GameObject to a th::Json object.
auto moveTurnForward () -> void
 Scores the board, resets the "playedThisTurn" flag, and gives next player control.
auto movePlayerCards (float direction, float cardDelay) -> void
 +1 for the direction will move player cards up and highlight them, -1 for the direction will move player cards down and become gray
auto cardSelected (const Message *message) -> void
 Moves selected card to be placed on board.
auto cardDeselected () -> void
 Brings previously selected card back to hand.
auto cardPlayedOnBoard (const Message *message) -> void
 Checks if card placement was valid.
auto updatedCardsPlayedThisTurn () -> void
 Sets "playedThisTurn" for cards played this turn to false, then empties the vector Typically called at the end of a players turn.
auto playScoredSound () const -> void
 Plays a sound effect when scoring.
auto resetScores () -> void
 Sets all scores to 0.
auto generatePlayerScoresData () const -> Stream
 Resets all caches and values for table.
auto resetTable () -> void
 Resets all caches and values for table.
auto getWinningPlayer () const -> Player *
 Gets the current winning player based off score.
auto getCurrentPlayerNumber () const -> int
 Gets who the current player should be based on the turn.
auto getCurrentPlayer () const -> Player *
 Gets who the current player should be based on the turn.
auto arePlayersEmpty () const -> bool
 Checks if all players have empty hands.
auto goToWinScreen () const -> void
 Moves the game to the win screen.
auto setPlayerInputIDs (const std::vector< int > &IDs) -> void
 Sets the IDs for all the players that will be participating in the game, in turn order.
auto getPlayerInputIDs () const -> const std::vector< int > &
 Gets all the IDs of the players participating in the game.
auto addScore () -> void
 A cheat code that adds 100 to a player's score.
auto drawCard () -> void
 A cheat code that manually draws a card to a player's hand.
Public Member Functions inherited from System
auto showMenu () -> void override
 Called before update each frame, for calling ImGui editor code relevant to the gameObject.
auto getKey () const -> Key override
 Generates a unique Key that corresponds to the GameObject.
auto getParent () const -> GameObject *override
 Gets the parent of a GameObject.
Public Member Functions inherited from GameObject
 GameObject (std::string typeName, gobj::Type parentType, gobj::Type type)
 constructor for gameobject.
virtual ~GameObject ()
 destructor for GameObject.
 GameObject (const GameObject &other)
 Copy Constructor.
auto operator= (const GameObject &other) -> GameObject &
 copy assignment operator
 GameObject (GameObject &&other) noexcept
 Move constructor.
auto operator= (GameObject &&other) noexcept -> GameObject &
 Move assignment operator.
virtual auto update (float dt) -> void
 called once every frame.
virtual auto render () -> void
 called every frame after update has been called for every object.
virtual auto destroy () -> void
 Marks an GameObject to be destroyed.
virtual auto onEnterEngine () -> void
 hook that is called when a GameObject enters the Engine tree.
virtual auto for_each (std::function< void(GameObject &)> func) -> void
 applies a function to every child.
virtual auto for_each (std::function< void(const GameObject &)> func) const -> void
 applies a const function to every child.
virtual auto parentTo (GameObject *newParent) -> bool
 Sets the GameObject as a child of another GameObject.
auto getInternalParent () const -> GameObject *
 returns the actual owning parent of the GameObject
virtual auto addChild (std::unique_ptr< GameObject > newChild) -> bool
 Adds a child to a GameObject.
auto destroyed () const -> bool
auto getUUID () const -> gobj::UUID
auto isUUID (gobj::UUID compareUUID) const -> bool
auto getName () const -> const std::string &
 Gets the type of the object as a string.
auto getNickname () const -> const std::string &
 Gets the nickname (custom, writable name) of a GameObject.
auto getFormattedName () const -> const std::string &
 combines a GameObjects Type, Nickname, and UUID into one string, for use with logging.
auto nameEquals (const std::string &compareString) const -> bool
 check whether a GameObjects typeName is equivilent to a given string.
auto isType (gobj::Type otherType) const -> bool
 check whether the GameObject is the same as a given type.
auto getObjectType () const -> gobj::Type
 gets the internal type of the GameObject, as an enum
auto setNickname (const std::string &newNickname) -> void
 sets the GameObjects nickname.
auto updates () const -> bool
auto renders () const -> bool
auto receivesMessages () const -> bool
auto isActive () const -> bool
virtual auto setShouldUpdate (bool _shouldUpdate) -> void
 set whether the GameObject should update every frame, and whether all of it's children should update every frame
virtual auto setShouldRender (bool _shouldRender) -> void
 set whether the GameObject should render every frame, and whether all of it's children should render every frame
virtual auto setShouldReceiveMessages (bool _shouldReceiveMessages) -> void
 set whether the GameObject should Receive Messags, and whether all of it's children should receive messages
auto setActive (bool shouldBeActive) -> void
 set the GameObject should update, render, and receive messages

Static Public Member Functions

static auto getEnum () -> Type
 function required by all systems

Private Attributes

Tabletable = nullptr
 A cache of Table so we can call its functions.
CardlastSelectedCard = nullptr
 Tracker of the last selected card, so we know what we're playing.
std::vector< Card * > cardsPlayedThisTurn
 Vector of all cards that have been played, primarily used for updating the "playedThisTurn" variable inside of Card.
int playerCardsPlaced = 0
 Keeps track of how many cards have been placed to see if limit has been hit.
std::vector< int > playerScores = {0}
 Scores for each player for the current game.
GameRules gameRules
 Ruleset to follow for things like cards in hand, size of board, etc.
int turn = 0
 Tracker of how many times a player has played their cards on the board. Starts at 0.
std::vector< int > playerInputIDs = {0}
 Vector used to track which input device IDs correspond to what player.

Friends

class Table

Additional Inherited Members

Public Types inherited from System
enum class  Type : unsigned short {
  system_error_type = 0 , newSystemStub = 100 , OpenGL = 200 , Input = 300 ,
  Editor = 400 , Messaging = 500 , Camera = 600 , Logging = 700 ,
  AudioSystem = 750 , Scoring = 800 , HandSystem = 900 , PlayerTurn = 950 ,
  Table = 960 , SceneManager = 1000 , Particles = 1050 , ActionList = 1100 ,
  DebugDraw = 1150 , ColliderSystem = 1300 , Options = 1400 , TestRunner = 64'000
}
Public Attributes inherited from GameObject
friend Entity
friend Node
friend ChildrenHandeler
friend Engine
Protected Member Functions inherited from System
 System (const std::string &typeName, Type systemType)
Protected Member Functions inherited from GameObject
auto setInternalParent (GameObject *parent) -> bool
 sets the internal parent of a GameObject directly, avoiding abstractions provided by ParentTo().
auto getGameObjectJson () const -> json
 Used for serializing GameObjects.
auto setGameObjectJson (const json &stream) -> void
 used for deserializing GameObjects
virtual auto getChildren () const -> std::shared_ptr< std::vector< GameObject * > >
 gets a vector of a GameObjects public (i.e.
auto checkAddToSceneHook () -> void
 Determine if the GameObject was recently added to the engine, and if it was, call onEngineEnter.

Constructor & Destructor Documentation

◆ PlayerTurn() [1/3]

sys::PlayerTurn::PlayerTurn ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~PlayerTurn()

sys::PlayerTurn::~PlayerTurn ( )
overridedefault

◆ PlayerTurn() [2/3]

sys::PlayerTurn::PlayerTurn ( const PlayerTurn & other)
default
Here is the call graph for this function:

◆ PlayerTurn() [3/3]

sys::PlayerTurn::PlayerTurn ( PlayerTurn && other)
defaultnoexcept
Here is the call graph for this function:

Member Function Documentation

◆ addScore()

auto sys::PlayerTurn::addScore ( ) ->void

A cheat code that adds 100 to a player's score.

Here is the call graph for this function:

◆ arePlayersEmpty()

auto sys::PlayerTurn::arePlayersEmpty ( ) const->bool

Checks if all players have empty hands.

Returns
A bool, returning true if hands are empty
Here is the caller graph for this function:

◆ cardDeselected()

auto sys::PlayerTurn::cardDeselected ( ) ->void

Brings previously selected card back to hand.

◆ cardPlayedOnBoard()

auto sys::PlayerTurn::cardPlayedOnBoard ( const Message * message) ->void

Checks if card placement was valid.

Here is the call graph for this function:

◆ cardSelected()

auto sys::PlayerTurn::cardSelected ( const Message * message) ->void

Moves selected card to be placed on board.

Here is the call graph for this function:

◆ clone()

auto sys::PlayerTurn::clone ( ) const->std::unique_ptr< GameObject >
inlineoverridevirtual

makes a copy a GameObject even if it's held polymorphically

Warning
When overriding this function, make sure to set the parents object to this
Returns
a unique_ptr to a new stack allocated object that is a copy of the object

Implements GameObject.

Here is the call graph for this function:

◆ drawCard()

auto sys::PlayerTurn::drawCard ( ) ->void

A cheat code that manually draws a card to a player's hand.

Here is the call graph for this function:

◆ endWindow()

auto sys::PlayerTurn::endWindow ( ) ->void
inlineoverridevirtual

currently unused, but intended to but was assumed to be necessary for a proper ImGui editor

Implements GameObject.

◆ generatePlayerScoresData()

auto sys::PlayerTurn::generatePlayerScoresData ( ) const->Stream

Resets all caches and values for table.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCurrentPlayer()

auto sys::PlayerTurn::getCurrentPlayer ( ) const->Player *

Gets who the current player should be based on the turn.

Returns
A pointer to the player
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCurrentPlayerNumber()

auto sys::PlayerTurn::getCurrentPlayerNumber ( ) const->int

Gets who the current player should be based on the turn.

Returns
The number of the player
Here is the caller graph for this function:

◆ getEnum()

auto sys::PlayerTurn::getEnum ( ) ->Type
inlinestatic

function required by all systems

◆ getPlayerInputIDs()

auto sys::PlayerTurn::getPlayerInputIDs ( ) const->conststd::vector< int > &

Gets all the IDs of the players participating in the game.

◆ getWinningPlayer()

auto sys::PlayerTurn::getWinningPlayer ( ) const->Player *

Gets the current winning player based off score.

Returns
A pointer to the player

◆ goToWinScreen()

auto sys::PlayerTurn::goToWinScreen ( ) const->void

Moves the game to the win screen.

Called when all cards have been played/cheat code is used

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

auto sys::PlayerTurn::load ( const Stream & stream) ->void
overridevirtual

Implementations will load the state of a GameObject from a th::Json Object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ movePlayerCards()

auto sys::PlayerTurn::movePlayerCards ( float direction,
float cardDelay )->void

+1 for the direction will move player cards up and highlight them, -1 for the direction will move player cards down and become gray

Here is the call graph for this function:
Here is the caller graph for this function:

◆ moveTurnForward()

auto sys::PlayerTurn::moveTurnForward ( ) ->void

Scores the board, resets the "playedThisTurn" flag, and gives next player control.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onRender()

auto sys::PlayerTurn::onRender ( ) ->void
overridevirtual

called every frame after update has been called for every object.

Generally used for rendering an object to the screen, when applicable. Unimplemented in GameObject

Implements GameObject.

◆ onSceneExit()

auto sys::PlayerTurn::onSceneExit ( const std::string & sceneName) ->void
overridevirtual

Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class.

Parameters
sceneNamethe name of the root node of the old scene

Reimplemented from GameObject.

◆ onSceneStart()

auto sys::PlayerTurn::onSceneStart ( const std::string & sceneName) ->void
overridevirtual

Hook that is called before the first frame a scene is run, but after the entire scene is loaded into the engine To receive the hook, simply override the function in your class.

Parameters
sceneNamethe name of the root node of the new scene

Reimplemented from GameObject.

Here is the call graph for this function:

◆ onUpdate()

auto sys::PlayerTurn::onUpdate ( float dt) ->void
overridevirtual

called once every frame.

Generally used for timers, movement, condition checks, etc. Unimplemented in GameObject

Parameters
dtthe time in seconds that has elapsed

Implements GameObject.

◆ operator=() [1/2]

auto sys::PlayerTurn::operator= ( const PlayerTurn & other) ->PlayerTurn &
Here is the call graph for this function:

◆ operator=() [2/2]

auto sys::PlayerTurn::operator= ( PlayerTurn && other) ->PlayerTurn &=default
defaultnoexcept
Here is the call graph for this function:

◆ playScoredSound()

auto sys::PlayerTurn::playScoredSound ( ) const->void

Plays a sound effect when scoring.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resetScores()

auto sys::PlayerTurn::resetScores ( ) ->void

Sets all scores to 0.

Here is the caller graph for this function:

◆ resetTable()

auto sys::PlayerTurn::resetTable ( ) ->void

Resets all caches and values for table.

Here is the call graph for this function:

◆ save()

auto sys::PlayerTurn::save ( Stream & stream) const->void
overridevirtual

Implementations will load the state of a GameObject to a th::Json object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ setPlayerInputIDs()

auto sys::PlayerTurn::setPlayerInputIDs ( const std::vector< int > & IDs) ->void

Sets the IDs for all the players that will be participating in the game, in turn order.

Parameters
IDsThe input device IDs you want to set

◆ systemShowMenu()

auto sys::PlayerTurn::systemShowMenu ( ) ->void
overridevirtual

Specific systems should override this function to show their specific menu for the system.

Reimplemented from System.

◆ updatedCardsPlayedThisTurn()

auto sys::PlayerTurn::updatedCardsPlayedThisTurn ( ) ->void

Sets "playedThisTurn" for cards played this turn to false, then empties the vector Typically called at the end of a players turn.

◆ Table

friend class Table
friend

Member Data Documentation

◆ cardsPlayedThisTurn

std::vector<Card*> sys::PlayerTurn::cardsPlayedThisTurn
private

Vector of all cards that have been played, primarily used for updating the "playedThisTurn" variable inside of Card.

◆ gameRules

GameRules sys::PlayerTurn::gameRules
private

Ruleset to follow for things like cards in hand, size of board, etc.

◆ lastSelectedCard

Card* sys::PlayerTurn::lastSelectedCard = nullptr
private

Tracker of the last selected card, so we know what we're playing.

◆ playerCardsPlaced

int sys::PlayerTurn::playerCardsPlaced = 0
private

Keeps track of how many cards have been placed to see if limit has been hit.

◆ playerInputIDs

std::vector<int> sys::PlayerTurn::playerInputIDs = {0}
private

Vector used to track which input device IDs correspond to what player.

◆ playerScores

std::vector<int> sys::PlayerTurn::playerScores = {0}
private

Scores for each player for the current game.

◆ table

Table* sys::PlayerTurn::table = nullptr
private

A cache of Table so we can call its functions.

◆ turn

int sys::PlayerTurn::turn = 0
private

Tracker of how many times a player has played their cards on the board. Starts at 0.


The documentation for this class was generated from the following files:
  • /home/egrazil/sites/Brunot/The House/source/Gameplay/Systems/PlayerTurn.h
  • /home/egrazil/sites/Brunot/The House/source/Gameplay/Systems/PlayerTurn.cpp