Playing a tableRow 3 card from the stack puts it to grave. (#3547)

* Playing a tableRow 3 card from the stack puts it to grave.

* move to top by resetting pos

* Zach touch

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>
This commit is contained in:
Rob Blanckaert 2019-02-03 02:33:38 -08:00 committed by ctrlaltca
parent ba985f97e5
commit 5e38214675
2 changed files with 13 additions and 6 deletions

View file

@ -2052,14 +2052,21 @@ void Player::playCard(CardItem *card, bool faceDown, bool tapped)
if (!info) {
return;
}
if (!faceDown && ((!settingsCache->getPlayToStack() && info->getTableRow() == 3) ||
((settingsCache->getPlayToStack() && info->getTableRow() != 0) &&
card->getZone()->getName().toStdString() != "stack"))) {
int tableRow = info->getTableRow();
bool playToStack = settingsCache->getPlayToStack();
QString currentZone = card->getZone()->getName();
if (currentZone == "stack" && tableRow == 3) {
cmd.set_target_zone("grave");
cmd.set_x(0);
cmd.set_y(0);
} else if (!faceDown &&
((!playToStack && tableRow == 3) || ((playToStack && tableRow != 0) && currentZone != "stack"))) {
cmd.set_target_zone("stack");
cmd.set_x(0);
cmd.set_y(0);
} else {
int tableRow = faceDown ? 2 : info->getTableRow();
tableRow = faceDown ? 2 : info->getTableRow();
QPoint gridPoint = QPoint(-1, TableZone::clampValidTableRow(2 - tableRow));
cardToMove->set_face_down(faceDown);
cardToMove->set_pt(info->getPowTough().toStdString());