mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-14 19:18:55 -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>
109 lines
4.6 KiB
C++
109 lines
4.6 KiB
C++
#ifndef COCKATRICE_PLAYER_EVENT_HANDLER_H
|
|
#define COCKATRICE_PLAYER_EVENT_HANDLER_H
|
|
#include "event_processing_options.h"
|
|
|
|
#include <QObject>
|
|
#include <pb/game_event.pb.h>
|
|
#include <pb/game_event_context.pb.h>
|
|
|
|
class CardItem;
|
|
class CardZoneLogic;
|
|
class Player;
|
|
class Event_AttachCard;
|
|
class Event_ChangeZoneProperties;
|
|
class Event_CreateArrow;
|
|
class Event_CreateCounter;
|
|
class Event_CreateToken;
|
|
class Event_DelCounter;
|
|
class Event_DeleteArrow;
|
|
class Event_DestroyCard;
|
|
class Event_DrawCards;
|
|
class Event_DumpZone;
|
|
class Event_FlipCard;
|
|
class Event_GameSay;
|
|
class Event_MoveCard;
|
|
class Event_RevealCards;
|
|
class Event_RollDie;
|
|
class Event_SetCardAttr;
|
|
class Event_SetCardCounter;
|
|
class Event_SetCounter;
|
|
class Event_Shuffle;
|
|
class PlayerEventHandler : public QObject
|
|
{
|
|
|
|
Q_OBJECT
|
|
signals:
|
|
void logSay(Player *player, QString message);
|
|
void logShuffle(Player *player, CardZoneLogic *zone, int start, int end);
|
|
void logRollDie(Player *player, int sides, const QList<uint> &rolls);
|
|
void logCreateArrow(Player *player,
|
|
Player *startPlayer,
|
|
QString startCard,
|
|
Player *targetPlayer,
|
|
QString targetCard,
|
|
bool _playerTarget);
|
|
void logCreateToken(Player *player, QString cardName, QString pt, bool faceDown);
|
|
void logDrawCards(Player *player, int number, bool deckIsEmpty);
|
|
void logUndoDraw(Player *player, QString cardName);
|
|
void logMoveCard(Player *player,
|
|
CardItem *card,
|
|
CardZoneLogic *startZone,
|
|
int oldX,
|
|
CardZoneLogic *targetZone,
|
|
int newX);
|
|
void logFlipCard(Player *player, QString cardName, bool faceDown);
|
|
void logDestroyCard(Player *player, QString cardName);
|
|
void logAttachCard(Player *player, QString cardName, Player *targetPlayer, QString targetCardName);
|
|
void logUnattachCard(Player *player, QString cardName);
|
|
void logSetCardCounter(Player *player, QString cardName, int counterId, int value, int oldValue);
|
|
void logSetTapped(Player *player, CardItem *card, bool tapped);
|
|
void logSetCounter(Player *player, QString counterName, int value, int oldValue);
|
|
void logSetDoesntUntap(Player *player, CardItem *card, bool doesntUntap);
|
|
void logSetPT(Player *player, CardItem *card, QString newPT);
|
|
void logSetAnnotation(Player *player, CardItem *card, QString newAnnotation);
|
|
void logDumpZone(Player *player, CardZoneLogic *zone, int numberCards, bool isReversed = false);
|
|
void logRevealCards(Player *player,
|
|
CardZoneLogic *zone,
|
|
int cardId,
|
|
QString cardName,
|
|
Player *otherPlayer,
|
|
bool faceDown,
|
|
int amount,
|
|
bool isLentToAnotherPlayer = false);
|
|
void logAlwaysRevealTopCard(Player *player, CardZoneLogic *zone, bool reveal);
|
|
void logAlwaysLookAtTopCard(Player *player, CardZoneLogic *zone, bool reveal);
|
|
|
|
public:
|
|
PlayerEventHandler(Player *player);
|
|
|
|
void processGameEvent(GameEvent::GameEventType type,
|
|
const GameEvent &event,
|
|
const GameEventContext &context,
|
|
EventProcessingOptions options);
|
|
|
|
void eventGameSay(const Event_GameSay &event);
|
|
void eventShuffle(const Event_Shuffle &event);
|
|
void eventRollDie(const Event_RollDie &event);
|
|
void eventCreateArrow(const Event_CreateArrow &event);
|
|
void eventDeleteArrow(const Event_DeleteArrow &event);
|
|
void eventCreateToken(const Event_CreateToken &event);
|
|
void
|
|
eventSetCardAttr(const Event_SetCardAttr &event, const GameEventContext &context, EventProcessingOptions options);
|
|
void eventSetCardCounter(const Event_SetCardCounter &event);
|
|
void eventCreateCounter(const Event_CreateCounter &event);
|
|
void eventSetCounter(const Event_SetCounter &event);
|
|
void eventDelCounter(const Event_DelCounter &event);
|
|
void eventDumpZone(const Event_DumpZone &event);
|
|
void eventMoveCard(const Event_MoveCard &event, const GameEventContext &context);
|
|
void eventFlipCard(const Event_FlipCard &event);
|
|
void eventDestroyCard(const Event_DestroyCard &event);
|
|
void eventAttachCard(const Event_AttachCard &event);
|
|
void eventDrawCards(const Event_DrawCards &event);
|
|
void eventRevealCards(const Event_RevealCards &event, EventProcessingOptions options);
|
|
void eventChangeZoneProperties(const Event_ChangeZoneProperties &event);
|
|
|
|
private:
|
|
Player *player;
|
|
};
|
|
|
|
#endif // COCKATRICE_PLAYER_EVENT_HANDLER_H
|