mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 09:33:25 -08:00
* [Refactor] Move game logic into libcockatrice_game * [Refactor] Include card_state.h in player_actions.h * [Game] Inject settings providers into libcockatrice_game, drop Widgets * [Game] Follow base rename to createCardRequested after rebase * [Game] Drop unused CardItem forward declaration * [Game] Fix includes after moving game logic into libcockatrice_game --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
#include "table_zone_logic.h"
|
|
|
|
#include "../board/card_state.h"
|
|
|
|
#include <QPoint>
|
|
|
|
TableZoneLogic::TableZoneLogic(PlayerLogic *_player,
|
|
const QString &_name,
|
|
bool _hasCardAttr,
|
|
bool _isShufflable,
|
|
bool _contentsKnown,
|
|
QObject *parent)
|
|
: CardZoneLogic(_player, _name, _hasCardAttr, _isShufflable, _contentsKnown, parent)
|
|
{
|
|
}
|
|
|
|
void TableZoneLogic::addCardImpl(CardState *card, int _x, int _y)
|
|
{
|
|
cards.append(card);
|
|
if (!card->getFaceDown() && card->getPT().isEmpty()) {
|
|
card->setPT(card->getCardInfo().getPowTough());
|
|
}
|
|
if (card->getCardInfo().getUiAttributes().cipt && card->getCardInfo().getUiAttributes().landscapeOrientation) {
|
|
card->setDoesntUntap(true);
|
|
}
|
|
card->setGridPoint(QPoint(_x, _y));
|
|
}
|
|
|
|
CardState *TableZoneLogic::takeCard(int position, int cardId, bool toNewZone)
|
|
{
|
|
CardState *result = CardZoneLogic::takeCard(position, cardId);
|
|
|
|
if (toNewZone) {
|
|
emit contentSizeChanged();
|
|
}
|
|
return result;
|
|
}
|
|
|
|
int TableZoneLogic::clampValidTableRow(const int row)
|
|
{
|
|
if (row < 0) {
|
|
return 0;
|
|
}
|
|
if (row >= ROW_COUNT) {
|
|
return ROW_COUNT - 1;
|
|
}
|
|
return row;
|
|
}
|
|
|
|
int TableZoneLogic::tableRowToGridY(int tableRow)
|
|
{
|
|
if (tableRow > 2) {
|
|
tableRow = 1;
|
|
}
|
|
return clampValidTableRow(2 - tableRow);
|
|
}
|