TeamSelector::TeamSelector() : teams(), teamsMap(), teamPages(), teamViews() { static const size_t NUM_PLAYERS = 8; selectActions.reserve(NUM_PLAYERS); for(size_t i = 0; i < NUM_PLAYERS; ++i) { QAction* a = new QAction(this); a->setShortcut(QKeySequence(Qt::Key_F1 + i)); addAction(a); connect(a, SIGNAL(triggered()), this, SLOT(selectPlayer())); selectActions.push_back(a); } QAction *aNext = new QAction(this); aNext->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_PageDown)); addAction(aNext); connect(aNext, SIGNAL(triggered()), this, SLOT(selectNext())); QAction *aPrev = new QAction(this); aPrev->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_PageUp)); addAction(aPrev); connect(aPrev, SIGNAL(triggered()), this, SLOT(selectPrev())); }
void PlayingState::finishPlacement() { selectPlayer(nullptr); task = Task::PlacementTransition; playButton->disable(); needleVel = 1500.0f + (std::rand() % 300); }
PlayerListWidget::PlayerListWidget(QWidget *parent) : QWidget(parent), ui(new Ui::TagDetailWidget) { setObjectName("PlayerListWidget"); ui->setupUi(this); m_filterModel = new QStringListModel(this); ui->tagList->setModel(m_filterModel); setObjectName("PlayerListWidget"); connect(ui->filterEdit, SIGNAL(textChanged(const QString&)), SLOT(findPlayers(const QString&))); connect(ui->tagList, SIGNAL(clicked(const QModelIndex&)), SLOT(showSelectedPlayer())); connect(ui->filterDatabase, SIGNAL(clicked()), SLOT(filterSelectedPlayer())); connect(ui->renameItem, SIGNAL(clicked()), SLOT(renameSelectedPlayer())); connect(ui->tagList, SIGNAL(doubleClicked(const QModelIndex&)), SLOT(filterSelectedPlayer())); selectPlayer(QString()); QItemSelectionModel* selectionModel = ui->tagList->selectionModel(); connect(selectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(selectionChangedSlot())); ui->detailText->setOpenLinks(false); connect(ui->detailText, SIGNAL(anchorClicked(QUrl)), SLOT(slotLinkClicked(QUrl))); slotReconfigure(); }
void PlayerListWidget::showSelectedPlayer() { if (ui->tagList->currentIndex().isValid()) { QString ts = ui->tagList->currentIndex().data().toString(); selectPlayer(ts); } }
void PlayingState::moveSelectedPlayer(sf::Vector2i gameCoords) { if(selectedPlayer != nullptr) { players.remove(selectedPlayer); players.push_back(selectedPlayer); selectedPlayer->gameCoords = gameCoords; updatePlayerPositions(); selectPlayer(nullptr); makeFieldCardsAvailable(); } }
void MainWindow::scanPlayers() { ui->menuSelect_Player->clear(); bool enabled = false; for (const QString &playerDir : settings->getPlayers()) { QDir dir(playerDir); QActionGroup *group = new QActionGroup(this); bool checked = false; QDirIterator it(dir); QList<QAction *> actions; while (it.hasNext()) { it.next(); if (it.fileName().endsWith(".plr")) { QString name = playerName(it.filePath()); if (!name.isNull()) { QAction *p = new QAction(this); p->setCheckable(true); p->setActionGroup(group); p->setText(name); p->setData(it.filePath()); connect(p, SIGNAL(triggered()), this, SLOT(selectPlayer())); if (!checked) { p->setChecked(true); p->trigger(); } checked = true; actions.append(p); } } } if (!actions.isEmpty()) { ui->menuOpen_World->addSection(playerDir); ui->menuSelect_Player->addActions(actions); enabled = true; } } ui->menuSelect_Player->setDisabled(!enabled); }
void PlayingState::changeTurn(Team team) { for(ActionCard* card : currentCards) { drawableEntities.remove(&card->sprite); } currentCards.clear(); selectPlayer(nullptr); turnTeam = team; addActionCardToList(*endTurnCard); sf::Vector2f blueBarScale((turnTeam == Team::BLUE) ? 2.0f : 0.0f, 1.0f); animations.push_back(new ScaleAnimation(blueBar, blueBarScale, 2.0f, Easing::INOUT)); for(Player* player : players) { player->setSelectable(player->team == turnTeam); } actionPoints = 5; updateTextAP(); }
void PlayerListWidget::slotSelectPlayer(const QString& player) { m_filterModel->setStringList(m_list); ui->filterEdit->clear(); selectPlayer(player); }
void PlayingState::enterChanceMode() { task = Task::Chance; selectPlayer(nullptr); removeActionCardFromList(*endTurnCard); }
void PlayingState::handleInput() { sf::Event event; while(game->window.pollEvent(event)) { if(event.type == sf::Event::Closed) { game->window.close(); } else if(event.type == sf::Event::MouseButtonPressed) { if(task != Task::PlacementTransition) { if(event.mouseButton.button == sf::Mouse::Left) { sf::Vector2i mousePos = sf::Vector2i(event.mouseButton.x, event.mouseButton.y); if(playButton->contains(mousePos)) { finishPlacement(); return; } for(Player* player : players) { if(player->contains(mousePos)) { if(task == Task::PassPlayerSelection) { if(player->getSelectable()) { selectPlayer(player); selectedAction->action(this); } } else if(player->getSelectable()) { selectPlayer(player); return; } } } for(FieldCard* card : fieldCards) { if(card->contains(mousePos)) { if(task == Task::Placement) { if(card->available) { moveSelectedPlayer(card->gameCoords); return; } } else if(task == Task::FieldCardSelection && card->available) { selectedFieldCard = card; selectedAction->action(this); } } } for(ActionCard* card : currentCards) { if(card->contains(mousePos) && task == Task::ActionSelection) { if(card->costAP <= actionPoints) { actionPoints -= card->costAP; updateTextAP(); card->action(this); //if(actionPoints == 0) changeTurn(); return; } } } } } } } }