void DeckHandler::newDeckCard(QString code, int total, bool add) { if(code.isEmpty()) return; //Mazo completo if(deckCardList[0].total < (uint)total) { emit pDebug("Deck is full: Not adding: (" + QString::number(total) + ") " + (*cardsJson)[code].value("name").toString(), Warning); return; } //Ya existe en el mazo bool found = false; for(int i=0; i<deckCardList.length(); i++) { if(deckCardList[i].getCode() == code) { if(!add) { emit pDebug((*cardsJson)[code].value("name").toString() + " already in deck."); return; } found = true; deckCardList[i].total+=total; deckCardList[i].remaining+=total; deckCardList[i].draw(true, this->cardHeight); break; } } if(!found) { DeckCard deckCard(code); deckCard.total = total; deckCard.remaining = total; deckCard.listItem = new QListWidgetItem(); insertDeckCard(deckCard); deckCard.draw(true, this->cardHeight); emit checkCardImage(code); } deckCardList[0].total-=total; deckCardList[0].draw(true, this->cardHeight); if(deckCardList[0].total == 0) deckCardList[0].listItem->setHidden(true); emit pDebug("Add to deck: (" + QString::number(total) + ")" + (*cardsJson)[code].value("name").toString()); }
void DeckHandler::reset() { ui->deckListWidget->clear(); deckCardList.clear(); clearDrawList(true); DeckCard deckCard(""); deckCard.total = 30; deckCard.listItem = new QListWidgetItem(); deckCard.draw(true, this->cardHeight); insertDeckCard(deckCard); enableDeckButtons(); emit pDebug("Deck list cleared."); }
void DraftScoreWindow::setScores(double rating1, double rating2, double rating3, QString synergy1, QString synergy2, QString synergy3) { double ratings[3] = {rating1, rating2, rating3}; QString synergies[3] = {synergy1, synergy2, synergy3}; double maxRating = std::max(std::max(rating1,rating2),rating3); for(int i=0; i<3; i++) { int rating255 = std::max(std::min((int)(ratings[i]*2.55), 255), 0); int r = std::min(255, (255 - rating255)*2); int g = std::min(255,rating255*2); int b = 0; scoresPushButton[i]->setText(QString::number((int)ratings[i])); scoresPushButton[i]->setStyleSheet( "QPushButton{background-color: " "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, " "stop: 0 black, " "stop: 0.5 rgb("+ QString::number(r) +","+ QString::number(g) +","+ QString::number(b) +"), " "stop: 1 black);" "border-style: solid;border-color: black;" + ((!synergies[i].isEmpty())?"border-bottom-style: dotted;":"") + "border-width: " + QString::number(scoreWidth/20) + "px;border-radius: " + QString::number(scoreWidth/3) + "px;}"); QPropertyAnimation *animation = new QPropertyAnimation(scoresPushButton[i], "maximumHeight"); animation->setDuration(ANIMATION_TIME); animation->setStartValue(0); animation->setEndValue(scoreWidth); animation->setEasingCurve(QEasingCurve::OutBounce); animation->start(); animation = new QPropertyAnimation(scoresPushButton[i], "minimumHeight"); animation->setDuration(ANIMATION_TIME); animation->setStartValue(0); animation->setEndValue(scoreWidth); animation->setEasingCurve(QEasingCurve::OutBounce); animation->start(); scoresPushButton[i]->setDrawArrow(!synergies[i].isEmpty()); scoresPushButton[i]->setDrawHLines(ratings[i]==maxRating); //Insert synergies synergiesListWidget[i]->clear(); QStringList synergiesList = synergies[i].split(" - ", QString::SkipEmptyParts); foreach(QString name, synergiesList) { QString code = Utility::cardEnCodeFromName(name); DeckCard deckCard(code); deckCard.listItem = new QListWidgetItem(synergiesListWidget[i]); deckCard.draw(); } synergiesListWidget[i]->setMaximumWidth(0); }