/** * @brief Instanciates and starts all listeners thread (chat, online players). * @pre The client have to be connected before to call this function. */ void MainWindow::startListeners() { // Start a thread for listening server requests. _listener = new Listener(_player.socket, this); connect(_listener, SIGNAL(pseudoAlreadyExists(QString)), this, SLOT(pseudoAlreadyExists(QString))); connect(_listener, SIGNAL(addMsg(QString)), this, SLOT(addMsg(QString))); connect(_listener, SIGNAL(addPlayerToView(player)), this, SIGNAL(askAddPlayer(player))); connect(_listener, SIGNAL(removePlayerFromView(player)), this, SIGNAL(askRmPlayer(player))); connect(_listener, SIGNAL(advisePlayerForGame(QString)), this, SLOT(adviseForGame(QString))); connect(_listener, SIGNAL(advisePlayerForAbortedGame(QString)), this, SLOT(adviseForAbortedGame(QString))); connect(_listener, SIGNAL(startGame()), this, SLOT(startGame())); connect(_listener, SIGNAL(clientBusy(player)), ui->rightMenuWidget, SIGNAL(askSetBusy(player))); connect(_listener, SIGNAL(clientFree(player)), ui->rightMenuWidget, SIGNAL(askSetFree(player))); connect(_listener, SIGNAL(setOpponent(player)), this, SLOT(setOpponent(player))); connect(_listener, SIGNAL(opponentQuit(player)), this, SLOT(opponentQuit(player))); connect(_listener, SIGNAL(receiveCheckerboard(checkerboard)), ui->checkerboardwidget, SLOT(receiveCheckerboard(checkerboard))); connect(_listener, SIGNAL(receiveWinner(player)), this, SLOT(displayWinner(player))); }
void Fight::socketFight() { switch( _socket->getCla2() ) { case C_FIGHT_INIT: logEE( "Should not happen (C_FIGHT_INIT in Fight)" ); break; case C_FIGHT_CREATURE: _isCreature = true; setOpponent( _game->getLord( 0 ) ); break; case C_FIGHT_LORD: { GenericLord * lord = _game->getLord( _socket->readChar() ); lord->setBaseCharac( ATTACK, _socket->readChar() ); lord->setBaseCharac( DEFENSE, _socket->readChar() ); setOpponent( lord ); } break; case C_FIGHT_CELL: socketFightCell(); break; case C_FIGHT_UNIT: { uchar cla = _socket->readChar(); uchar num = _socket->readChar(); GenericFightUnit * unit = new GenericFightUnit(); uchar race = _socket->readChar(); uchar level = _socket->readChar(); unit->setCreature( race, level ); unit->setNumber( _socket->readInt() ); unit->setMove( _socket->readChar() ); unit->setHealth( _socket->readInt() ); setUnit( unit, (CLASS_FIGHTER)cla, num ); } break; case C_FIGHT_MODUNIT: socketFightModify(); break; case C_FIGHT_MOVE: socketFightMove(); break; case C_FIGHT_ENDMOVE: _isActive = false; _map->clearPath(); break; case C_FIGHT_ACTIVE:{ uchar cla = _socket->readChar(); uchar num = _socket->readChar(); setActive( (CLASS_FIGHTER)cla, num ); } break; case C_FIGHT_DAMAGE: socketFightDamage(); break; case C_FIGHT_END: { updateUnits(); showFightResults( _socket->readChar() ); emit sig_quit(); } break; } }
void ContinuedGameMenuWindow::on_stage4Button_clicked() { //switch to debate window emit setOpponent(4); emit switchToWindow(7); emit getQuestions(); emit stageSelected(4); emit updatePhysicsWorld(getGravity(), getBounce(), getOppBounce()); }
void Fight::socketFightLord() { uchar id = _socket->readChar(); uchar valueAtt = _socket->readChar(); uchar valueDef = _socket->readChar(); GenericLord * lord = _game->getLord( id ); if( lord ) { lord->setBaseCharac( ATTACK, valueAtt ); lord->setBaseCharac( DEFENSE, valueDef ); setOpponent( lord ); } else { logEE(" lord not exist id %d, valueAtt %d, valueDef %d", id, valueAtt, valueDef); } }
void Fight::socketFightCreatue() { _isCreature = true; setOpponent( _game->getLord( 0 ) ); }