added more animations (im just stalling the inevitable eventually i will have to sit down and write a proper event system but for now i am just making these animatons)
This commit is contained in:
parent
758d577609
commit
dd671571b0
10 changed files with 106 additions and 23 deletions
|
@ -11,11 +11,23 @@ Board::Board(Game* parent) :
|
|||
void Board::RevealCard()
|
||||
{
|
||||
openCards.push_back(parent->GetStack().DrawCard());
|
||||
if (callback)
|
||||
callback(openCards.back());
|
||||
if (revealCallback)
|
||||
revealCallback(openCards.back());
|
||||
}
|
||||
|
||||
void Board::Cleanup()
|
||||
{
|
||||
openCards.clear();
|
||||
if (cleanupCallback)
|
||||
cleanupCallback();
|
||||
}
|
||||
|
||||
void Board::SetRevealCallback(RevealCallbackFunc callbackFunc)
|
||||
{
|
||||
callback = callbackFunc;
|
||||
revealCallback = callbackFunc;
|
||||
}
|
||||
|
||||
void Board::SetCleanupCallback(CleanupCallbackFunc callbackFunc)
|
||||
{
|
||||
cleanupCallback = callbackFunc;
|
||||
}
|
||||
|
|
|
@ -6,22 +6,33 @@
|
|||
#include "Card.hpp"
|
||||
|
||||
typedef std::function<void(std::shared_ptr<Card>)> RevealCallbackFunc;
|
||||
typedef std::function<void(void)> CleanupCallbackFunc;
|
||||
|
||||
class Game;
|
||||
|
||||
enum class BoardState
|
||||
{
|
||||
Empty,
|
||||
HasCards,
|
||||
C
|
||||
};
|
||||
|
||||
class Board
|
||||
{
|
||||
public:
|
||||
Board(Game* parent);
|
||||
|
||||
void RevealCard();
|
||||
void Cleanup();
|
||||
inline const std::vector<std::shared_ptr<Card>>& GetOpenCards() { return openCards; }
|
||||
|
||||
void SetRevealCallback(RevealCallbackFunc callbackFunc);
|
||||
void SetCleanupCallback(CleanupCallbackFunc callbackFunc);
|
||||
|
||||
private:
|
||||
std::vector<std::shared_ptr<Card>> openCards;
|
||||
|
||||
RevealCallbackFunc callback;
|
||||
RevealCallbackFunc revealCallback;
|
||||
CleanupCallbackFunc cleanupCallback;
|
||||
Game* parent;
|
||||
};
|
|
@ -16,7 +16,7 @@ CardStack::CardStack()
|
|||
}
|
||||
|
||||
// Shuffle stack
|
||||
std::default_random_engine engine(time(0));
|
||||
std::default_random_engine engine(std::chrono::steady_clock::now().time_since_epoch().count());
|
||||
std::shuffle(stack.begin(), stack.end(), engine);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,4 +11,10 @@ void Game::Setup()
|
|||
// Put 8 cards on the table
|
||||
for (int i = 0; i < 8; i++)
|
||||
board.RevealCard();
|
||||
}
|
||||
}
|
||||
|
||||
void Game::Cleanup()
|
||||
{
|
||||
stack = CardStack();
|
||||
board.Cleanup();
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ public:
|
|||
~Game() {}
|
||||
|
||||
void Setup();
|
||||
void Cleanup();
|
||||
inline CardStack& GetStack() { return stack; }
|
||||
inline Board& GetBoard() { return board; }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue