mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
* Player refactor. Took 1 hour 43 minutes Took 1 minute Took 23 seconds * Tiny lint. Took 3 minutes * Hook up tap logic again. Took 13 minutes * Fix an include. Took 3 minutes * Stuff. Took 6 minutes * Fix typo. Took 7 minutes * Include. Took 1 minute * Reorganize method/variable definitions, remove unused ones. Took 1 hour 8 minutes Took 24 seconds * Clean up some unused imports. Took 6 minutes * Player holds the deck, emits deckChanged(), other elements player->getDeck() to respond to changes. Took 37 minutes * Connect player->openDeckEditor signal directly in the player constructor Took 6 minutes * Emit openDeckEditor signal in player_actions again. Took 3 minutes * Do to-do's Took 3 hours 32 minutes * Lint. Took 3 minutes * Lint again. Took 2 minutes * Fix include. Took 32 minutes * The stack should ensure card visibility. Took 21 minutes * Fine, the game can remember the tab. Took 10 minutes Took 21 seconds Took 9 seconds * zoneId is a dynamic gameplay property and thus belongs in player.cpp Took 11 minutes Took 19 seconds * Signal view removal, addition. Took 5 minutes * Ensure all players are considered local in local game. Took 10 minutes * ENSURE they are. Took 8 minutes * Bounds check data sent by QAction() Took 54 minutes * Move comment. Took 20 seconds * Reimplement logging category for game_event_handler.cpp, remove linebreaks. Took 36 seconds * PlayerGraphicsItem is responsible for retranslateUi, not Player. Took 14 seconds * Set menu for sideboard again, translate some menu titles, reimplement actIncPT action Took 54 seconds * Comment spacing. Took 43 seconds * Change message_log_widget.cpp slots to take CardZoneLogic parameters as emitted by PlayerEventHandler. Took 7 minutes Took 14 seconds * Remove unused player_logger.cpp Took 2 minutes * Query local game state correctly from tab_supervisor again Took 3 minutes * Revert Deck legality checker. Took 3 minutes * Instantiate menu before graphics item. Took 1 hour 5 minutes Took 55 minutes * Differentiate games and replays. Took 9 seconds * Lint. Took 10 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
54 lines
No EOL
1.3 KiB
C++
54 lines
No EOL
1.3 KiB
C++
#include "abstract_game.h"
|
|
|
|
#include "player/player.h"
|
|
|
|
AbstractGame::AbstractGame(TabGame *_tab) : tab(_tab)
|
|
{
|
|
gameMetaInfo = new GameMetaInfo(this);
|
|
gameEventHandler = new GameEventHandler(this);
|
|
|
|
activeCard = nullptr;
|
|
}
|
|
|
|
bool AbstractGame::isHost() const
|
|
{
|
|
return gameState->getHostId() == playerManager->getLocalPlayerId();
|
|
}
|
|
|
|
AbstractClient *AbstractGame::getClientForPlayer(int playerId) const
|
|
{
|
|
if (gameState->getClients().size() > 1) {
|
|
if (playerId == -1) {
|
|
playerId = playerManager->getActiveLocalPlayer(gameState->getActivePlayer())->getPlayerInfo()->getId();
|
|
}
|
|
|
|
return gameState->getClients().at(playerId);
|
|
} else if (gameState->getClients().isEmpty())
|
|
return nullptr;
|
|
else
|
|
return gameState->getClients().first();
|
|
}
|
|
|
|
void AbstractGame::loadReplay(GameReplay *replay)
|
|
{
|
|
gameMetaInfo->setFromProto(replay->game_info());
|
|
gameMetaInfo->setSpectatorsOmniscient(true);
|
|
}
|
|
|
|
void AbstractGame::setActiveCard(CardItem *card)
|
|
{
|
|
activeCard = card;
|
|
}
|
|
|
|
CardItem *AbstractGame::getCard(int playerId, const QString &zoneName, int cardId) const
|
|
{
|
|
Player *player = playerManager->getPlayer(playerId);
|
|
if (!player)
|
|
return nullptr;
|
|
|
|
CardZoneLogic *zone = player->getZones().value(zoneName, 0);
|
|
if (!zone)
|
|
return nullptr;
|
|
|
|
return zone->getCard(cardId);
|
|
} |