QWidget *PlayerCardDialog::createEquipArea() { QGroupBox *area = new QGroupBox(tr("Equip area")); QVBoxLayout *layout = new QVBoxLayout; WrappedCard *weapon = player->getWeapon(); if (weapon) { PlayerCardButton *button = new PlayerCardButton(weapon->getFullName()); button->setIcon(G_ROOM_SKIN.getCardSuitPixmap(Sanguosha->getEngineCard(weapon->getId())->getSuit())); button->setEnabled(!disabled_ids.contains(weapon->getEffectiveId()) && (method != Card::MethodDiscard || Self->canDiscard(player, weapon->getEffectiveId()))); mapper.insert(button, weapon->getId()); connect(button, SIGNAL(clicked()), this, SLOT(emitId())); layout->addWidget(button); } WrappedCard *armor = player->getArmor(); if (armor) { PlayerCardButton *button = new PlayerCardButton(armor->getFullName()); button->setIcon(G_ROOM_SKIN.getCardSuitPixmap(Sanguosha->getEngineCard(armor->getId())->getSuit())); button->setEnabled(!disabled_ids.contains(armor->getEffectiveId()) && (method != Card::MethodDiscard || Self->canDiscard(player, armor->getEffectiveId()))); mapper.insert(button, armor->getId()); connect(button, SIGNAL(clicked()), this, SLOT(emitId())); layout->addWidget(button); } WrappedCard *horse = player->getDefensiveHorse(); if (horse) { PlayerCardButton *button = new PlayerCardButton(horse->getFullName() + tr("(+1 horse)")); button->setIcon(G_ROOM_SKIN.getCardSuitPixmap(Sanguosha->getEngineCard(horse->getId())->getSuit())); button->setEnabled(!disabled_ids.contains(horse->getEffectiveId()) && (method != Card::MethodDiscard || Self->canDiscard(player, horse->getEffectiveId()))); mapper.insert(button, horse->getId()); connect(button, SIGNAL(clicked()), this, SLOT(emitId())); layout->addWidget(button); } horse = player->getOffensiveHorse(); if (horse) { PlayerCardButton *button = new PlayerCardButton(horse->getFullName() + tr("(-1 horse)")); button->setIcon(G_ROOM_SKIN.getCardSuitPixmap(Sanguosha->getEngineCard(horse->getId())->getSuit())); button->setEnabled(!disabled_ids.contains(horse->getEffectiveId()) && (method != Card::MethodDiscard || Self->canDiscard(player, horse->getEffectiveId()))); mapper.insert(button, horse->getId()); connect(button, SIGNAL(clicked()), this, SLOT(emitId())); layout->addWidget(button); } if (layout->count() == 0) { PlayerCardButton *no_equip = new PlayerCardButton(tr("No equip")); no_equip->setEnabled(false); no_equip->setObjectName("noequip_button"); return no_equip; } else { area->setLayout(layout); return area; } }
QWidget *PlayerCardDialog::createJudgingArea() { QGroupBox *area = new QGroupBox(tr("Judging Area")); QVBoxLayout *layout = new QVBoxLayout; QList<const Card *> cards = player->getJudgingArea(); foreach (const Card *card, cards) { const Card *real = Sanguosha->getEngineCard(card->getId()); PlayerCardButton *button = new PlayerCardButton(real->getFullName()); button->setIcon(G_ROOM_SKIN.getCardSuitPixmap(real->getSuit())); layout->addWidget(button); button->setEnabled(!disabled_ids.contains(card->getEffectiveId()) && (method != Card::MethodDiscard || Self->canDiscard(player, card->getEffectiveId()))); mapper.insert(button, card->getId()); connect(button, SIGNAL(clicked()), this, SLOT(emitId())); } if (layout->count() == 0) { PlayerCardButton *button = new PlayerCardButton(tr("No judging cards")); button->setEnabled(false); button->setObjectName("nojuding_button"); return button; } else { area->setLayout(layout); return area; } }