implement actions

This commit is contained in:
RickyRister 2026-03-03 22:18:36 -08:00
parent e7a3ad86eb
commit 1e909c01b5
2 changed files with 42 additions and 10 deletions

View file

@ -424,15 +424,25 @@ void PlayerActions::actMoveTopCardToExile()
void PlayerActions::actMoveTopCardsToGrave() void PlayerActions::actMoveTopCardsToGrave()
{ {
moveTopCardsTo("grave", tr("grave")); moveTopCardsTo("grave", tr("grave"), false);
}
void PlayerActions::actMoveTopCardsToGraveFaceDown()
{
moveTopCardsTo("grave", tr("grave"), true);
} }
void PlayerActions::actMoveTopCardsToExile() void PlayerActions::actMoveTopCardsToExile()
{ {
moveTopCardsTo("rfg", tr("exile")); moveTopCardsTo("rfg", tr("exile"), false);
} }
void PlayerActions::moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName) void PlayerActions::actMoveTopCardsToExileFaceDown()
{
moveTopCardsTo("rfg", tr("exile"), true);
}
void PlayerActions::moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown)
{ {
const int maxCards = player->getDeckZone()->getCards().size(); const int maxCards = player->getDeckZone()->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
@ -460,7 +470,11 @@ void PlayerActions::moveTopCardsTo(const QString &targetZone, const QString &zon
cmd.set_y(0); cmd.set_y(0);
for (int i = number - 1; i >= 0; --i) { for (int i = number - 1; i >= 0; --i) {
cmd.mutable_cards_to_move()->add_card()->set_card_id(i); auto card = cmd.mutable_cards_to_move()->add_card();
card->set_card_id(i);
if (faceDown) {
card->set_face_down(true);
}
} }
sendGameCommand(cmd); sendGameCommand(cmd);
@ -608,15 +622,25 @@ void PlayerActions::actMoveBottomCardToExile()
void PlayerActions::actMoveBottomCardsToGrave() void PlayerActions::actMoveBottomCardsToGrave()
{ {
moveBottomCardsTo("grave", tr("grave")); moveBottomCardsTo("grave", tr("grave"), false);
}
void PlayerActions::actMoveBottomCardsToGraveFaceDown()
{
moveBottomCardsTo("grave", tr("grave"), true);
} }
void PlayerActions::actMoveBottomCardsToExile() void PlayerActions::actMoveBottomCardsToExile()
{ {
moveBottomCardsTo("rfg", tr("exile")); moveBottomCardsTo("rfg", tr("exile"), false);
} }
void PlayerActions::moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName) void PlayerActions::actMoveBottomCardsToExileFaceDown()
{
moveBottomCardsTo("rfg", tr("exile"), true);
}
void PlayerActions::moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown)
{ {
const int maxCards = player->getDeckZone()->getCards().size(); const int maxCards = player->getDeckZone()->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
@ -644,7 +668,11 @@ void PlayerActions::moveBottomCardsTo(const QString &targetZone, const QString &
cmd.set_y(0); cmd.set_y(0);
for (int i = maxCards - number; i < maxCards; ++i) { for (int i = maxCards - number; i < maxCards; ++i) {
cmd.mutable_cards_to_move()->add_card()->set_card_id(i); auto card = cmd.mutable_cards_to_move()->add_card();
card->set_card_id(i);
if (faceDown) {
card->set_face_down(true);
}
} }
sendGameCommand(cmd); sendGameCommand(cmd);

View file

@ -98,7 +98,9 @@ public slots:
void actMoveTopCardToGrave(); void actMoveTopCardToGrave();
void actMoveTopCardToExile(); void actMoveTopCardToExile();
void actMoveTopCardsToGrave(); void actMoveTopCardsToGrave();
void actMoveTopCardsToGraveFaceDown();
void actMoveTopCardsToExile(); void actMoveTopCardsToExile();
void actMoveTopCardsToExileFaceDown();
void actMoveTopCardsUntil(); void actMoveTopCardsUntil();
void actMoveTopCardToBottom(); void actMoveTopCardToBottom();
void actDrawBottomCard(); void actDrawBottomCard();
@ -108,7 +110,9 @@ public slots:
void actMoveBottomCardToGrave(); void actMoveBottomCardToGrave();
void actMoveBottomCardToExile(); void actMoveBottomCardToExile();
void actMoveBottomCardsToGrave(); void actMoveBottomCardsToGrave();
void actMoveBottomCardsToGraveFaceDown();
void actMoveBottomCardsToExile(); void actMoveBottomCardsToExile();
void actMoveBottomCardsToExileFaceDown();
void actMoveBottomCardToTop(); void actMoveBottomCardToTop();
void actSelectAll(); void actSelectAll();
@ -180,8 +184,8 @@ private:
FilterString movingCardsUntilFilter; FilterString movingCardsUntilFilter;
int movingCardsUntilCounter = 0; int movingCardsUntilCounter = 0;
void moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName); void moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown);
void moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName); void moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown);
void createCard(const CardItem *sourceCard, void createCard(const CardItem *sourceCard,
const QString &dbCardName, const QString &dbCardName,