Exemplo n.º 1
0
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()));
}
Exemplo n.º 2
0
void PlayingState::finishPlacement() {
    selectPlayer(nullptr);
    task = Task::PlacementTransition;
    playButton->disable();

    needleVel = 1500.0f + (std::rand() % 300);
}
Exemplo n.º 3
0
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();
}
Exemplo n.º 4
0
void PlayerListWidget::showSelectedPlayer()
{
    if (ui->tagList->currentIndex().isValid())
    {
        QString ts = ui->tagList->currentIndex().data().toString();
        selectPlayer(ts);
    }
}
Exemplo n.º 5
0
void PlayingState::moveSelectedPlayer(sf::Vector2i gameCoords) {
    if(selectedPlayer != nullptr) {
        players.remove(selectedPlayer);
        players.push_back(selectedPlayer);
        selectedPlayer->gameCoords = gameCoords;
        updatePlayerPositions();
        selectPlayer(nullptr);
        makeFieldCardsAvailable();
    }
}
Exemplo n.º 6
0
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);
}
Exemplo n.º 7
0
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();
}
Exemplo n.º 8
0
void PlayerListWidget::slotSelectPlayer(const QString& player)
{
    m_filterModel->setStringList(m_list);
    ui->filterEdit->clear();
    selectPlayer(player);
}
Exemplo n.º 9
0
void PlayingState::enterChanceMode() {
    task = Task::Chance;
    selectPlayer(nullptr);
    removeActionCardFromList(*endTurnCard);
}
Exemplo n.º 10
0
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;
                            }
                        }
                    }
                }
            }
        }
    }
}