Esempio n. 1
0
void MainWindow::on_NewReservation_clicked()
{
    if("" == ui->CustomerIdReservation->text() || "" == ui->RoomNumberReservation->text())
    {
        QMessageBox::about(0,Title,EmptyRes);
        ui->CustomerIdReservation->setFocus();
    }
    else
    {
        if(ui->CheckInDate->date() < QDate::currentDate())
        {
            QMessageBox::about(0,Title,DateBeforeCurrentDate);
            ui->CheckInDate->setDate(QDate(QDate::currentDate()));
        }
        else if(ui->CheckOutDate->date() < ui->CheckInDate->date())
        {
            QMessageBox::about(0,Title,CheckOutBeforeCheckIn);
            ui->CheckOutDate->setDate(ui->CheckInDate->date());
        }
        else
        {
            Room room;
            Customer customer;

            customer.setId(ui->CustomerIdReservation->text());
            room.setRoomNumber(ui->RoomNumberReservation->text().toInt());

            ResM.roomReservation(ui->CheckInDate->date(),ui->CheckOutDate->date(),room,customer);

            ui->CheckInDate->setDate(QDate(QDate::currentDate()));
            ui->CheckOutDate->setDate(QDate(QDate::currentDate()));
            ui->CustomerIdReservation->setText("");
            ui->RoomNumberReservation->setText("");
            ui->CustomerIdReservation->setFocus();
            showRoomGrid();
        }
    }
}
Esempio n. 2
0
    bool onPhaseChange(ServerPlayer *player) const
    {
        if (player->getPhase() == Player::Start) {
            Room *room = player->getRoom();
            player->setMark("juao", 0);

            LogMessage log;
            log.type = "#JuaoObtain";
            log.from = player;
            log.arg = objectName();
            room->sendLog(log);

            DummyCard *dummy = new DummyCard;

            foreach (int card_id, player->getPile("hautain")) {
                dummy->addSubcard(card_id);
            }

            player->obtainCard(dummy, false);
            delete dummy;

            player->skip(Player::Draw);
        }
Esempio n. 3
0
    void Maze::displayRoom(Room &room)
    {
        using std::cout;
        using std::endl;

        blankRoom();
        prepareRoom(room);

        cout << endl << endl;
        cout << endl << endl << "          " << room.getName() << endl << endl;

        for(int y = 0; y < 18; y++)
        {
            cout << "          " << workRoomM[y] << endl;
        }

        cout << endl << endl << room.getDescription() << endl;


        cout << endl << exits(room) << endl << getFlashMessage() << endl << endl;;
        cout << endl << endl << endl;

    } //end displayRoom()
Esempio n. 4
0
    virtual bool onPhaseChange(ServerPlayer *player) const{
        if(player->getPhase() == Player::Start){
            Room *room = player->getRoom();
            player->setMark("juao", 0);
            ServerPlayer *xuyou = room->findPlayerBySkillName(objectName());
            foreach(int card_id, player->getPile("hautain")){
                if(!xuyou)
                    room->throwCard(card_id);
                else
                    room->obtainCard(player, card_id);
            }
            if(!xuyou)
                return false;

            LogMessage log;
            log.type = "#JuaoObtain";
            log.from = player;
            log.arg = objectName();
            log.to << xuyou;
            room->sendLog(log);

            player->skip(Player::Draw);
        }
Esempio n. 5
0
void CatalogApp::keyDown( KeyEvent event )
{
	switch( event.getChar() ){
		case ' ':	mRoom.togglePower();			break;
		case 'n':	mRenderNames = !mRenderNames;	break;
		case 'b':	mRenderBrightStars = !mRenderBrightStars;	break;
		case 'f':	mRenderFaintStars = !mRenderFaintStars;		break;
		case '1':	setView( 0, 1 );				break;
		case '2':	setView( 0, 2 );				break;
		case '3':	setView( 0, 3 );				break;
		case '4':	setView( 3, 0 );				break;
		default:									break;
	}
}
Esempio n. 6
0
bool WorldGeneratorContext::canFitRoom(const Room &first, const Room &second, const Direction::Value direction) const
{
	const int width = second.width();
	const int height = second.height();

	const IRoomPlacementStrategy *strategy = m_selector.select(direction);
	const Coordinate offset = strategy->position(first, second);

	for(int x = 0; x < width; x++)
	{
		for(int y = 0; y < height; y++)
		{
			Coordinate coordinate(offset.first + x, offset.second + y);

			if(isTileGenerated(coordinate))
			{
				return false;
			}
		}
	}

	return true;
}
Esempio n. 7
0
void FireAttack::onEffect(const CardEffectStruct &effect) const
{
    Room *room = effect.from->getRoom();
    if (effect.to->isKongcheng())
        return;

    const Card *card = room->askForCardShow(effect.to, effect.from, objectName());
    room->showCard(effect.to, card->getEffectiveId());

    QString suit_str = card->getSuitString();
    QString pattern = QString(".%1").arg(suit_str.at(0).toUpper());
    QString prompt = QString("@fire-attack:%1::%2").arg(effect.to->objectName()).arg(suit_str);
    if (effect.from->isAlive()) {
        const Card *card_to_throw = room->askForCard(effect.from, pattern, prompt);
        if (card_to_throw)
            room->damage(DamageStruct(this, effect.from, effect.to, 1, DamageStruct::Fire));
        else
            effect.from->setFlags("FireAttackFailed_" + effect.to->objectName()); // For AI
    }

    if (card->isVirtualCard())
        delete card;
}
Esempio n. 8
0
void MapData::searchDoorNames(RoomRecipient * recipient, QString s, Qt::CaseSensitivity cs)
{
  QMutexLocker locker(&mapLock);
  Room * r = 0;

  for(vector<Room *>::iterator i = roomIndex.begin(); i != roomIndex.end(); ++i)
  {
    r = *i;
    if (r) {
      ExitsList exits = r->getExitsList();
      for(ExitsList::const_iterator exitIter = exits.begin(); exitIter != exits.end(); ++exitIter)
      {
        const Exit & e = *exitIter;
        if (QString((e)[0].toString()).contains(s, cs))
        {
          locks[r->getId()].insert(recipient);
          recipient->receiveRoom(this, r);
          break;
        }
      }
    }
  }
}
Esempio n. 9
0
    virtual void onDamaged(ServerPlayer *target, const DamageStruct &damage) const{
        if(target->askForSkillInvoke(objectName(), QVariant::fromValue(damage))){
            target->getRoom()->playSkillEffect(objectName());

            target->drawCards(1);
            if(target->isKongcheng())
                return;
            Room *room = target->getRoom();
            room->showAllCards(target);

            QList<const Card *> cards = target->getHandcards();
            Card::Color color = cards.first()->getColor();
            bool same_color = true;
            foreach(const Card *card, cards){
                if(card->getColor() != color){
                    same_color = false;
                    break;
                }
            }

            if(same_color && damage.from && !damage.from->isKongcheng())
                room->askForDiscard(damage.from, objectName(), 1, 1);
        }
Esempio n. 10
0
void readin_room(Hashtable<Room> * map, Hashtable<wordobj> * dictionary)
{
	Room * curr = new Room();
	ifstream rooms("rooms.txt");
	string temp;
	int count = 0;
	rooms >>temp;
	curr->setname(temp);
	while(true)
	{
		if(count == 0) //0 is description for room
		{
			rooms >> temp;
			if(temp == "|" || temp == "")  // | is end of file character 
				break;
			while(rooms.peek() != '\n')
			{
				curr->setdesc(temp);
				rooms >> temp;
			}
			curr->setdesc(temp);
		}
		else if(count == 1) //items in room
Esempio n. 11
0
void DelayedTrick::onEffect(const CardEffectStruct &effect) const{
    Room *room = effect.to->getRoom();

    if(!movable)
        room->throwCard(this);

    LogMessage log;
    log.from = effect.to;
    log.type = "#DelayedTrick";
    log.arg = effect.card->objectName();
    room->sendLog(log);

    JudgeStruct judge_struct = judge;
    judge_struct.who = effect.to;
    room->judge(judge_struct);

    if(judge_struct.isBad()){
        room->throwCard(this);
        takeEffect(effect.to);
    }else if(movable){
        onNullified(effect.to);
    }
}
Esempio n. 12
0
void Analeptic::onEffect(const CardEffectStruct &effect) const{
    Room *room = effect.to->getRoom();

    // do animation
    QString who = effect.to->objectName();
    QString animation_str = QString("analeptic:%1:%2").arg(who).arg(who);
    room->broadcastInvoke("animate", animation_str);

    if(effect.to->hasFlag("dying")){
        // recover hp
        RecoverStruct recover;
        recover.card = this;
        recover.who = effect.from;
        room->recover(effect.to, recover);
    }else{
        LogMessage log;
        log.type = "#Drank";
        log.from = effect.from;
        room->sendLog(log);

        room->setPlayerFlag(effect.to, "drank");
    }
}
Esempio n. 13
0
    virtual bool trigger(TriggerEvent event, ServerPlayer *player, QVariant &data) const{
        Room *room = player->getRoom();
        DamageStruct damage = data.value<DamageStruct>();
        if(event == Predamage){
            if(!(damage.to->getArmor() && damage.to->getArmor()->objectName() == "wall"))
                return false;
            if(!player->askForSkillInvoke(objectName(), data))
                return false;
            room->throwCard(damage.to->getArmor());
            LogMessage log;
            log.type = "#CatapultDamage";
            log.from = damage.to;
            log.to << player;
            log.arg = QString::number(damage.damage);
            log.arg2 = QString::number(damage.damage + 1);
            room->sendLog(log);

            damage.damage ++;
            data = QVariant::fromValue(damage);
        }

        return false;
    }
Esempio n. 14
0
void Actor::walk(Engine* engine) {
	engine->broadcast(this, this->currentRoom, true);

	auto possibleDirs = this->currentRoom->getExits();

	int diceRoll = rand() % possibleDirs.size();

	string chosenDir = possibleDirs[diceRoll];

	Room* nextRoom = this->currentRoom->exits[chosenDir];

	Room* prevRoom = this->currentRoom;

	nextRoom->addChar(this);

	prevRoom->removeChar(this);

	if(this->playerInRoom() != 0) {
		this->printActor();
	}

	engine->broadcast(this, this->currentRoom, false);
}
Esempio n. 15
0
json_t *JsonApi::buildJsonHome()
{
    json_t *jdata = json_array();

    for (int iroom = 0;iroom < ListeRoom::Instance().size();iroom++)
    {
        Room *room = ListeRoom::Instance().get_room(iroom);
        json_t *jroom = json_object();

        json_t *jitems = json_pack("{s:o, s:o}",
                                   "inputs", buildJsonRoomIO<Input>(room),
                                   "outputs", buildJsonRoomIO<Output>(room));

        json_object_set_new(jroom, "type", json_string(room->get_type().c_str()));
        json_object_set_new(jroom, "name", json_string(room->get_name().c_str()));
        json_object_set_new(jroom, "hits", json_string(Utils::to_string(room->get_hits()).c_str()));
        json_object_set_new(jroom, "items", jitems);

        json_array_append_new(jdata, jroom);
    }

    return jdata;
}
Esempio n. 16
0
bool Mst::collapse(int num) {
    if (num <= excludedSanningTreePaths.size()) {
        int totalNum = num - 1;
        Room *from = nullptr;
        Room *to = nullptr;
        for (auto it = excludedSanningTreePaths.begin(); it != excludedSanningTreePaths.end() && num > 0; it++, num--) {
            from = it.operator*().first.first;
            to = it.operator*().first.second;

            from->removeEdge(to);
            to->removeEdge(from);
        }
        auto end = excludedSanningTreePaths.find(make_pair(from, to));

        if (end != excludedSanningTreePaths.end()) {
            excludedSanningTreePaths.erase(excludedSanningTreePaths.begin(), end);
        }

        return true;
    }

    return false;
}
Esempio n. 17
0
void ShadedSphereApp::update()
{
	// ROOM
	mRoom.update();

	// CAMERA
	if( mMousePressed ){
		mSpringCam.dragCam( ( mMouseOffset ) * 0.01f, ( mMouseOffset ).length() * 0.01 );
	}
	mSpringCam.update( 0.4f );

	// ROOM
	drawIntoRoomFbo();
}
Esempio n. 18
0
void RepulsionApp::keyDown( KeyEvent event )
{
	switch( event.getChar() ){
		case ' ':	mRoom.togglePower();			break;
		case 's':	mSaveFrames = !mSaveFrames;		break;
		default:									break;
	}

	switch(event.getCode())
	{
		case KeyEvent::KEY_ESCAPE:	quit();			break;
		default:									break;
	}
}
Esempio n. 19
0
void SMWServer::playerJoinsRoom(uint64_t playerID, const void* data, size_t dataLength)
{
    if (!players.count(playerID))
        return;

    Player* player = &players[playerID];
    if (player->currentRoomID || player->isPlaying)
        return; // TODO: warning

    if (dataLength != sizeof(NetPkgs::JoinRoom)) {
        printf("[error] Corrupt package arrived from %lu\n", playerID);
        return;
    }

    NetPkgs::JoinRoom pkg;
    memcpy(&pkg, data, dataLength);

    printf("%s wants to join room %u\n", player->name.c_str(), pkg.roomID);

    if (!rooms.count(pkg.roomID)) {
        printf("No such room! (%u)\n", pkg.roomID);
        return;
    }

    // Find first empty slot
    Room* room = &rooms[pkg.roomID];    // TODO: Validate
    room->tryAddingPlayer(player);

    if (player->currentRoomID) {
        player->sendCode(NET_RESPONSE_JOIN_OK);
        room->sendRoomUpdate();
    }
    else
        player->sendCode(NET_RESPONSE_ROOM_FULL);

    player->isPlaying = false;
}
Esempio n. 20
0
void FireAttack::onEffect(const CardEffectStruct &effect) const{
    Room *room = effect.from->getRoom();
    if(effect.to->isKongcheng())
        return;

    const Card *card = room->askForCardShow(effect.to, effect.from, objectName());
    room->showCard(effect.to, card->getEffectiveId());

    QString suit_str = card->getSuitString();
    QString pattern = QString(".%1").arg(suit_str.at(0).toUpper());
    QString prompt = QString("@fire-attack:%1::%2").arg(effect.to->getGeneralName()).arg(suit_str);
    if(room->askForCard(effect.from, pattern, prompt)){
        DamageStruct damage;
        damage.card = this;
        damage.from = effect.from;
        damage.to = effect.to;
        damage.nature = DamageStruct::Fire;

        room->damage(damage);
    }

    if(card->isVirtualCard())
        delete card;
}
void BubbleChamberApp::keyDown( KeyEvent event )
{
	switch( event.getChar() ){
		case ' ':	mRoom.togglePower();				break;
		case 'm':	mController.releaseMoths();			break;
		case '1':	mController.preset( 1 );			break;
		case '2':	mController.preset( 2 );			break;
		case '3':	mController.preset( 3 );			break;
		case '4':	mController.preset( 4 );			break;
		case '5':	mController.preset( 5 );			break;
		case '6':	mController.preset( 6 );			break;
		default:										break;
	}
	
	switch( event.getCode() ){
		case KeyEvent::KEY_UP:		mActiveCam.setEye( mRoom.getCornerCeilingPos() );	break;
		case KeyEvent::KEY_DOWN:	mActiveCam.setEye( mRoom.getCornerFloorPos() );		break;
		case KeyEvent::KEY_RIGHT:	mActiveCam.resetEye();								break;
		default: break;
	}

	switch( event.getCode() ){
		//case KeyEvent::KEY_UP:		mMouseRightPos = Vec2f( 222.0f, 205.0f ) + getWindowCenter();	break;
		case KeyEvent::KEY_UP:		setCameras(Vec3f(mHeadCam0.mEye.x, mHeadCam0.mEye.y, mHeadCam0.mEye.z - 100), true);
									break;
		//case KeyEvent::KEY_LEFT:	mMouseRightPos = Vec2f(-128.0f,-178.0f ) + getWindowCenter();	break;
		case KeyEvent::KEY_LEFT:	setCameras(Vec3f(mHeadCam0.mEye.x - 100, mHeadCam0.mEye.y, mHeadCam0.mEye.z), true);
									break;
			//case KeyEvent::KEY_RIGHT:	mMouseRightPos = Vec2f(-256.0f, 122.0f ) + getWindowCenter();	break;
		case KeyEvent::KEY_RIGHT:	setCameras(Vec3f(mHeadCam0.mEye.x + 100, mHeadCam0.mEye.y, mHeadCam0.mEye.z), true);	break;
		//case KeyEvent::KEY_DOWN:	mMouseRightPos = Vec2f(   0.0f,   0.0f ) + getWindowCenter();	break;
		case KeyEvent::KEY_DOWN:	setCameras(Vec3f(mHeadCam0.mEye.x, mHeadCam0.mEye.y, mHeadCam0.mEye.z + 100), true);
									break;
		default: break;
	}
}
Esempio n. 22
0
void CatalogApp::keyDown( KeyEvent event )
{
	switch( event.getChar() ){
		case ' ':	
			mRoom.togglePower();
			if(mRoom.isPowerOn() && mCopyrightAlpha < 1.0f)
 				mCopyrightAlpha = 1.0f;
			break;
		case 'n':	mRenderNames = !mRenderNames;	break;
		case 'b':	mRenderBrightStars = !mRenderBrightStars;	break;
		case 'f':	mRenderFaintStars = !mRenderFaintStars;		break;
		case '1':	setView( 0, 1 );				break;
		case '2':	setView( 0, 2 );				break;
		case '3':	setView( 0, 3 );				break;
		case '4':	setView( 3, 0 );				break;
		default:									break;
	}

	switch (event.getCode() )
	{
		case KeyEvent::KEY_ESCAPE: quit();			break;
		default:									break;
	}
}
Esempio n. 23
0
void MainWindow::on_pushButton_clicked()
{
    if("" == ui->FindRoomNumber->text())
    {
        QMessageBox::about(0,Title,NoRoomNumber);
        ui->FindRoomNumber->setFocus();
    }
    else
    {
        Room room;

        room = RM.fetchRoom(ui->FindRoomNumber->text().toInt());
        if(room.getCapacity()!=0)
        {
            ui->FindRoomFloor->setText(QString("%1").arg(room.getRoomFloor()));
            ui->FindRoomCapacity->setText(QString("%1").arg(room.getCapacity()));
        }
        else
        {
           QMessageBox::about(0,Title,NoRoomNumber);
        }
        ui->FindRoomFloor->setFocus();
    }
}
Esempio n. 24
0
void CMDPaste::TextInput(Socket* sock, std::vector<std::string>* lines, void* args)
{
    std::stringstream st;
    Player* mobile = (Player*)args;
    Room* location = (Room*)mobile->GetLocation();

    st << "Paste from ";
    st << Capitalize(mobile->GetName());
    st << " of ";
    st << lines->size();
    st << "lines.";
    st << std::endl;
    st << Repeat("-", 80);
    for (auto it: *lines)
    {
        st << it << std::endl;
    }
    st << Repeat("-", 80) << std::endl;

    location->TellAll(st.str());
    mobile->GetSocket()->ClearInput();
    mobile->Message(MSG_INFO, "Paste finished.");
    delete lines;
}
/**
  *Deletes selected entry in Room table
  *@param room is a room class item
  *@param fetchquery is an sql query
  *@param query is an sql query
  */
void RoomManagement::deleteRoom(Room room)
{
        QSqlQuery fetchquery;
        QSqlQuery query;

        fetchquery = sqlMechanism.myQuery();
        fetchquery.prepare("SELECT * FROM RoomsReservation WHERE fkRoomId= :rNum");
        fetchquery.bindValue(":rNum",room.getRoomNumber());
        fetchquery.exec();

        fetchquery.next();
        if(fetchquery.isValid())
        {
           QMessageBox::information(0,"Input Data Error","This room can't be Deleted.Reservation in progress");
        }
    else
        {
            query = sqlMechanism.myQuery();
            query.prepare("delete from Rooms where RoomNumber = :rNum");
            query.bindValue(":rNum",room.getRoomNumber());
            query.exec();
        }

}
Esempio n. 26
0
void MST::Display(Map& map)
{
	std::vector<Room*> rooms = map.getRooms();
	if (rooms.size() == 0) return;

	int i, u, v, sz;
	// this is just style...
	sz = _MST.size();
	for (i = 0; i < sz; i++)
	{
		u = _MST[i].second.first;
		v = _MST[i].second.second;

		Room* ur = rooms.at(u);
		Room* uv = rooms.at(v);

		Direction d = map.getDirection(*ur, *uv);
		ur->getPassage(d)->SetShortest(true);


	}
	map.show();

	//Reset
	for (i = 0; i < sz; i++)
	{
		u = _MST[i].second.first;
		v = _MST[i].second.second;

		Room* ur = rooms.at(u);
		Room* uv = rooms.at(v);

		Direction d = map.getDirection(*ur, *uv);
		ur->getPassage(d)->SetShortest(false);
	}
}
Esempio n. 27
0
    virtual bool trigger(TriggerEvent, ServerPlayer *player, QVariant &data) const{
        SlashEffectStruct effect = data.value<SlashEffectStruct>();

        Room *room = player->getRoom();
        CardStar card = room->askForCard(player, "@axe", "@axe:" + effect.to->objectName());
        if(card){
            QList<int> card_ids = card->getSubcards();
            foreach(int card_id, card_ids){
                LogMessage log;
                log.type = "$DiscardCard";
                log.from = player;
                log.card_str = QString::number(card_id);

                room->sendLog(log);
            }

            LogMessage log;
            log.type = "#AxeSkill";
            log.from = player;
            log.to << effect.to;
            room->sendLog(log);

            room->slashResult(effect, NULL);
        }
Esempio n. 28
0
void MainWindow::on_SaveRoom_clicked()
{
    if("" == ui->FindRoomFloor->text() || "" == ui->FindRoomCapacity->text())
    {
        QMessageBox::about(0,Title,NotAllRoomData);
        ui->FindRoomFloor->setFocus();
    }
    else
    {
        Room room;
        room.setRoomNumber( ui->FindRoomNumber->text().toInt() );
        room.setCapacity( ui->FindRoomCapacity->text().toInt() );
        room.setRoomFloor( ui->FindRoomFloor->text().toInt() );

        RM.editRoom(room);

        ui->FindRoomCapacity->setText("");
        ui->FindRoomFloor->setText("");
        ui->FindRoomNumber->setText("");
        ui->FindRoomNumber->setFocus();
        showRoomGrid();
        RoomTableView();
    }
}
  /**
    *fetches all free rooms and returns them into a vector
	*@param fetchquery is an sql query
	*@param room is a room class item
	*@param froomVector is a vector containing free all rooms
	*@return the vector result
    */
  vector<Room> RoomManagement::fetchFreeRooms()
  {
      Room room;

      vector<Room> froomVector;

     QSqlQuery fetchquery;

     //!To erotima de doulevei sosta!
     fetchquery = sqlMechanism.myQuery();
     fetchquery.exec("SELECT * FROM Rooms WHERE RoomNumber NOT IN (SELECT DISTINCT fkRoomId FROM RoomsReservation);");

     while(fetchquery.next())
     {
          room.setRoomNumber(fetchquery.value(1).toInt());
          room.setRoomFloor(fetchquery.value(2).toInt());
          room.setCapacity(fetchquery.value(3).toInt());

          froomVector.push_back( room );
     }

     return froomVector;

 }
Esempio n. 30
0
void BubbleChamberApp::update()
{
	// ROOM
	mRoom.update();
	
	// CAMERA
	if( mMousePressed )
		mSpringCam.dragCam( ( mMouseOffset ) * 0.02f, ( mMouseOffset ).length() * 0.02 );
	mSpringCam.update( 0.3f );

	// CONTROLLER
	mController.update();

	drawIntoRoomFbo();
}