mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-09 03:23:24 -08:00
[Refactor] Move the remaining zone commands out of game_graphics/zones/
This commit is contained in:
parent
271d40302c
commit
aabec45d2b
5 changed files with 64 additions and 39 deletions
|
|
@ -50,6 +50,7 @@
|
|||
#include <libcockatrice/protocol/pb/command_change_zone_properties.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_create_token.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_draw_cards.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_dump_zone.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_flip_card.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_game_say.pb.h>
|
||||
#include <libcockatrice/protocol/pb/command_inc_counter.pb.h>
|
||||
|
|
@ -2035,6 +2036,40 @@ void PlayerActions::moveCards(CardZoneLogic *startZone,
|
|||
sendGameCommand(cmd);
|
||||
}
|
||||
|
||||
PendingCommand *PlayerActions::prepareZoneDump(CardZoneLogic *zone, int numberCards)
|
||||
{
|
||||
if (!zone) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Command_DumpZone cmd;
|
||||
cmd.set_player_id(zone->getPlayer()->getPlayerInfo()->getId());
|
||||
cmd.set_zone_name(zone->getName().toStdString());
|
||||
cmd.set_number_cards(numberCards);
|
||||
if (auto *viewLogic = qobject_cast<ZoneViewZoneLogic *>(zone)) {
|
||||
cmd.set_is_reversed(viewLogic->getIsReversed());
|
||||
}
|
||||
|
||||
return prepareGameCommand(cmd);
|
||||
}
|
||||
|
||||
void PlayerActions::actToggleTapped(const QString &zoneName, const QList<CardItem *> &cards, bool tapped)
|
||||
{
|
||||
QList<const ::google::protobuf::Message *> cmdList;
|
||||
for (CardItem *card : cards) {
|
||||
if (card->getTapped() != tapped) {
|
||||
auto *cmd = new Command_SetCardAttr;
|
||||
cmd->set_zone(zoneName.toStdString());
|
||||
cmd->set_card_id(card->getId());
|
||||
cmd->set_attribute(AttrTapped);
|
||||
cmd->set_attr_value(tapped ? "1" : "0");
|
||||
cmdList.append(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
sendGameCommand(prepareGameCommand(cmdList));
|
||||
}
|
||||
|
||||
void PlayerActions::sendGameCommand(const google::protobuf::Message &command)
|
||||
{
|
||||
if (player->getPlayerInfo()->getJudge() && !player->getPlayerInfo()->getLocal()) {
|
||||
|
|
|
|||
|
|
@ -71,6 +71,21 @@ public:
|
|||
void
|
||||
moveCards(CardZoneLogic *startZone, CardZoneLogic *targetZone, int x, int y, const QList<CardMoveRequest> &cards);
|
||||
|
||||
/**
|
||||
* @brief Prepares a dump of the given zone, for the caller to connect to and send.
|
||||
* @param zone Zone to dump.
|
||||
* @param numberCards How many cards to dump, -1 for all.
|
||||
*/
|
||||
PendingCommand *prepareZoneDump(CardZoneLogic *zone, int numberCards);
|
||||
|
||||
/**
|
||||
* @brief Sets the tapped state of the cards that do not already have it.
|
||||
* @param zoneName Zone the cards belong to.
|
||||
* @param cards Cards the view wants toggled.
|
||||
* @param tapped Desired tapped state.
|
||||
*/
|
||||
void actToggleTapped(const QString &zoneName, const QList<CardItem *> &cards, bool tapped);
|
||||
|
||||
void moveOneCardUntil(CardItem *card);
|
||||
void stopMoveTopCardsUntil();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue