void CCardLabelNexus::showCardLabelToolTip(const CCard &card, int x, int y) { if (!mCardLabelToolTip->isVisible() && card.isValid()) { const CGlobalConfig &cfg = CGlobalConfig::getCfg(); const CCardTable &cardTable = CCardTable::getCardTable(); mCardLabelToolTipSummonLabel->setVisible(false); const QList<CCardSkill> &skills = card.getSkills(); QStringList skillDescr; skillDescr.append(QString("<b>%1</b><br>").arg(card.getName())); QString subTitleStr = card.isUnique() ? "Unique " : ""; switch(card.getFaction()) { case EImperialFaction: subTitleStr += "Imperial"; break; case EBloodthirstyFaction: subTitleStr += "Bloodthirsty"; break; case EXenoFaction: subTitleStr += "Xeno"; break; case ERighteousFaction: subTitleStr += "Righteous"; break; case ERaiderFaction: subTitleStr += "Raider"; break; default: break; } skillDescr.append(QString("<i>%1</i><table valign='middle'>").arg(subTitleStr)); for (int i = 0; i < skills.size(); ++i) { const CSkill& curSkill = cardTable.getSkillForId(skills.at(i).getId()); if (curSkill.isValid()) { skillDescr.append(QString("<tr><td><img src='%1.png'/></td><td> %2</td></tr>") .arg(cfg.getResourcePicturePath() + curSkill.getPicture()) .arg(curSkill.makeSignature(skills.at(i), true))); if (curSkill.isSummon()) { const CCard &summonCard = cardTable.getCardForId(skills.at(i).getX()); mCardLabelToolTipSummonLabel->setCard(summonCard); mCardLabelToolTipSummonLabel->setVisible(true); } } } skillDescr.append(QString("</table>")); mCardLabelToolTipText->setText(skillDescr.join("")); mCardLabelToolTipLayout->activate(); mCardLabelToolTip->adjustSize(); int reqW = mCardLabelToolTip->width() + 5; int reqH = mCardLabelToolTip->height() + 20; int xRel = (QApplication::desktop()->width() - x < reqW) ? -reqW : 5; int yRel = (QApplication::desktop()->height() - y < reqH) ? -reqH : 20; mCardLabelToolTip->setGeometry(x + xRel, y + yRel, 80, 40); mCardLabelToolTip->setVisible(true); } }
bool CCardSearchParameters::checkCard(const CCard &card, int &/*num*/) const { bool pass(true); if (pass) { pass = card.getLwCsName().contains(mLwCsName); } if (pass) { switch(mAttackCompare) { case ECompareLarger: pass = qMax(0, card.getAttack()) > mAttackValue; break; case ECompareEqualOrLarger: pass = qMax(0, card.getAttack()) >= mAttackValue; break; case ECompareEqual: pass = qMax(0, card.getAttack()) == mAttackValue; break; case ECompareEqualOrLesser: pass = qMax(0, card.getAttack()) <= mAttackValue; break; case ECompareLesser: pass = qMax(0, card.getAttack()) < mAttackValue; break; default: pass = false; break; } } if (pass) { switch(mHpCompare) { case ECompareLarger: pass = qMax(0, card.getHealth()) > mHpValue; break; case ECompareEqualOrLarger: pass = qMax(0, card.getHealth()) >= mHpValue; break; case ECompareEqual: pass = qMax(0, card.getHealth()) == mHpValue; break; case ECompareEqualOrLesser: pass = qMax(0, card.getHealth()) <= mHpValue; break; case ECompareLesser: pass = qMax(0, card.getHealth()) < mHpValue; break; default: pass = false; break; } } if (pass && mRarityMask != 0) { switch (card.getRarity()) { case ELegendaryRarity: pass = (mRarityMask & 0x1) != 0; break; case ERareRarity: pass = (mRarityMask & 0x2) != 0; break; case EUncommonRarity: pass = (mRarityMask & 0x4) != 0; break; case ECommonRarity: pass = (mRarityMask & 0x8) != 0; break; default: pass = false; break; } } if (pass && mTypeMask != 0) { switch (card.getType()) { case EAssaultType: pass = (mTypeMask & 0x1) != 0; break; case EStructureType: pass = (mTypeMask & 0x2) != 0; break; case ECommanderType: pass = (mTypeMask & 0x4) != 0; break; case EActionType: pass = (mTypeMask & 0x8) != 0; break; default: pass = false; break; } } if (pass && mFactionMask != 0) { switch (card.getFaction()) { case EBloodthirstyFaction: pass = (mFactionMask & 0x1) != 0; break; case EImperialFaction: pass = (mFactionMask & 0x2) != 0; break; case ERaiderFaction: pass = (mFactionMask & 0x4) != 0; break; case ERighteousFaction: pass = (mFactionMask & 0x8) != 0; break; case EXenoFaction: pass = (mFactionMask & 0x10) != 0; break; default: pass = false; break; } } if (pass && mTimerMask != 0) { switch (card.getDelay()) { case 0: pass = (mTimerMask & 0x1) != 0; break; case 1: pass = (mTimerMask & 0x2) != 0; break; case 2: pass = (mTimerMask & 0x4) != 0; break; case 3: pass = (mTimerMask & 0x8) != 0; break; case 4: pass = (mTimerMask & 0x10) != 0; break; default: pass = false; break; } } if (pass && mCheckUpgradeLevel) { switch(mUpgradeLevel) { case 0: pass = card.getUpgradeLevel() == EUpgradeNotAvailable; break; case 1: pass = card.getUpgradeLevel() == EUpgradeLevel1; break; case 2: pass = card.getUpgradeLevel() == EUpgradeLevel2; break; default: pass = false; break; } } if (pass && mIsUnique) { pass = card.isUnique(); } if (pass) { int skillPass(0); const TSkillList& skills = card.getSkills(); for (TSkillList::const_iterator i = skills.begin(); skillPass < mSkill.size() && i != skills.end(); ++i) { const CSkill& curSkill = mCards.getSkillForId(i->getId()); const QString &curSkillSig = curSkill.makeSignature(*i).toLower(); for(QStringList::const_iterator j = mLwCsSkill.begin(); j != mLwCsSkill.end(); ++j) { if (curSkillSig.contains(*j)) { ++skillPass; break; } } } pass = (skillPass == mSkill.size()); } return pass; }