Example #1
0
void PokemonBox::load()
{
    QDomDocument doc;

    QFile in(QString(getBoxPath() + "/%1.box").arg(getName()));
    in.open(QIODevice::ReadOnly);

    if(!doc.setContent(&in))
    {
        return ;
    }

    QDomElement box = doc.firstChildElement("Box");
    if (box.isNull())
        return;
    QDomElement slot = box.firstChildElement("Slot");
    int version = box.attribute("Version", "0").toInt();

    while (!slot.isNull()) {
        if (slot.attribute("Num").toInt() < 0 || slot.attribute("Num").toInt() > pokemons.size())
            break;
        int num = slot.attribute("Num").toInt();

        if (pokemons[num] != NULL)
            break;

        QDomElement poke = slot.firstChildElement("Pokemon");

        if (poke.isNull())
            break;

        PokeTeam p;
        if (version == 0 && poke.attribute("Num").toInt() < 505) {
            p.setGen(4);
        }
        p.loadFromXml(poke, version);

        addPokemon(p,num);

        slot = slot.nextSiblingElement("Slot");
    }
}
Example #2
0
void CApp::OnLButtonDown(int mX, int mY) {

    if(state_helpScreen) {

        state_helpScreen = false;
        state_welcomeScreen = true;

    }
    if(state_welcomeScreen) {

        welcomeScreenLogic(mX, mY);

    }
    else if(state_storyScreen) {

        state_storyScreen = false;
        state_welcomeScreen = true;

    }
    else if(state_selectElement1) {

        int chosenElement = findElement(mX, mY);
        if(chosenElement != -1) {
            state_selectElement1 = false;
            state_selectElement2 = true;

            addPokemon(chosenElement, "Pokemon 1");
        }

    }
    else if(state_selectElement2) {

        int chosenElement = findElement(mX, mY);
        if(chosenElement != -1) {
            state_selectElement2 = false;
            state_selectElement3 = true;

            addPokemon(chosenElement, "Pokemon 2");
        }

    }
    else if(state_selectElement3) {

        int chosenElement = findElement(mX, mY);
        if(chosenElement != -1) {
            state_selectElement3 = false;
            state_selectMoves1 = true;

            addPokemon(chosenElement, "Pokemon 3");
        }

    }
    else if(state_selectMoves1) {

        if(state_elementSelected) {
            chosenMove = findMove(mX, mY, chosenMoveElement);
            if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35
                if(addMove(chosenMove, 0)) { //If the poke now has 4 moves
                    state_selectMoves1 = false;
                    state_selectMoves2 = true;
                    state_elementSelected = false;
                    state_selectTheMove = -1;

                    player2->team.at(0)->pokeMoveSet.push_back(new Move());
                    player2->team.at(0)->pokeMoveSet.push_back(new Move());
                    player2->team.at(0)->pokeMoveSet.push_back(new Move());
                    player2->team.at(0)->pokeMoveSet.push_back(new Move());
                }
                else {
                    state_elementSelected = false;
                    state_selectTheMove = -1;
                }

            }
            else {
                state_elementSelected = false;
                state_selectTheMove = -1;
            }
        }
        else {
            chosenMoveElement = findMoveElement(mX, mY);
            if(chosenMoveElement != -1)
                state_elementSelected = true;
        }

    }
    else if(state_selectMoves2) {

        if(state_elementSelected) {
            chosenMove = findMove(mX, mY, chosenMoveElement);
            if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35
                if(addMove(chosenMove, 1)) { //If the poke now has 4 moves
                    state_selectMoves2 = false;
                    state_selectMoves3 = true;
                    state_elementSelected = false;
                    state_selectTheMove = -1;

                    player2->team.at(1)->pokeMoveSet.push_back(new Move());
                    player2->team.at(1)->pokeMoveSet.push_back(new Move());
                    player2->team.at(1)->pokeMoveSet.push_back(new Move());
                    player2->team.at(1)->pokeMoveSet.push_back(new Move());
                }
                else {
                    state_elementSelected = false;
                    state_selectTheMove = -1;
                }

            }
            else {
                state_elementSelected = false;
                state_selectTheMove = -1;
            }
        }
        else {
            chosenMoveElement = findMoveElement(mX, mY);
            if(chosenMoveElement != -1)
                state_elementSelected = true;
        }

    }
    else if(state_selectMoves3) {

        if(state_elementSelected) {
            chosenMove = findMove(mX, mY, chosenMoveElement);
            if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35
                if(addMove(chosenMove, 2)) { //If the poke now has 4 moves
                    state_selectMoves3 = false;
                    state_elementSelected = false;
                    state_selectTheMove = -1;

                    player2->team.at(2)->pokeMoveSet.push_back(new Move());
                    player2->team.at(2)->pokeMoveSet.push_back(new Move());
                    player2->team.at(2)->pokeMoveSet.push_back(new Move());
                    player2->team.at(2)->pokeMoveSet.push_back(new Move());
                }
                else {
                    state_elementSelected = false;
                    state_selectTheMove = -1;
                }

            }
            else {
                state_elementSelected = false;
                state_selectTheMove = -1;
            }
        }
        else {
            chosenMoveElement = findMoveElement(mX, mY);
            if(chosenMoveElement != -1)
                state_elementSelected = true;
        }

    }
    else if(state_player1Win) {

        state_welcomeScreen = true;
        state_selectElement1 = false;
        state_selectElement2 = false;
        state_selectElement3 = false;
        state_moveOverlay = false;
        state_switchPokemon = false;
        state_player1Win = false;
        state_player2Win = false;

    }
    else if(state_player2Win) {

        state_welcomeScreen = true;
        state_selectElement1 = false;
        state_selectElement2 = false;
        state_selectElement3 = false;
        state_moveOverlay = false;
        state_switchPokemon = false;
        state_player1Win = false;
        state_player2Win = false;

    }

    else {//Battle State

/*        if(currentBattle->poke1->taunted) { //Not needed yet as CPU is already random
            currentBattle->poke1Move = currentBattle->poke1->getMove(rand() % 4);
            currentBattle->player1Attack = true;
            player1Ready = true;
            setBattleOff = false;
            return;
        }//Does being taunted or beatdown take priority?*/
        if(currentBattle->beatdown1On) {
            currentBattle->player1Attack = true;
            player1Ready = true;
            setBattleOff = false;
            return;
        }

        if(currentBattle->powerFlare1) {
            currentBattle->player1Attack = false;
            player1Ready = true;
            setBattleOff = false;
            currentBattle->powerFlare1 = false;
            return;
        }

        if(state_switchPokemon == true) {
            setBattleOff = false;

            if(waitingForKnockoutSwitch) {
            //Have to check if pokemon were knocked out before the rest of the checks, as the future checks will modify the values
                setBattleOff = true;

            }

            switchPokemonLogic(mX, mY);
        }

        else if(state_moveOverlay == true) {
            moveOverlayLogic(mX, mY);
        }

        if( atInitiateLocation(mX, mY) && hitByTimerPoke1 == 0 && hitByTimerPoke2 == 0) {
            state_moveOverlay = true;
        }
        else {
            state_moveOverlay = false;
        }

    }


}
MainWindow::MainWindow()
{
	// Title
	setWindowTitle("Pokedex");

	pokemonNameDisplay = new QLabel();

	// Overall layout
	overallLayout = new QHBoxLayout();



	// // Selected pokemon display
	// Layout
	pokemonDisplayLayout = new QVBoxLayout();
	overallLayout->addLayout(pokemonDisplayLayout);


	// Pokemon image
	//TODO
	
	pokemonImageContainer = new QLabel();
	
	pokemonDisplayLayout->addWidget(pokemonImageContainer);

	// Pokemon name
	//TODO
	pokemonNameLabel = new QLabel("");
	pokemonDisplayLayout->addWidget(pokemonNameLabel);


	// Make it so image and name are at the top
	pokemonDisplayLayout->addStretch();




	// // List of all pokemon
	//TODO
	pokemonListWidget = new QListWidget();
	connect(pokemonListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(displayPokemon(int)));
	overallLayout->addWidget(pokemonListWidget);




	// // Form to add pokemon
	// Layout
	formLayout = new QVBoxLayout();
	overallLayout->addLayout(formLayout);


	// Pokemon name label
	pokemonNameLabel = new QLabel("Pokemon's Name:");
	formLayout->addWidget(pokemonNameLabel);

	// Pokemon name input
	//TODO
	pokemonNameInput = new QLineEdit();
	formLayout->addWidget(pokemonNameInput);
	

	// Image filename label
	imageFilenameLabel = new QLabel("Image Filename:");
	formLayout->addWidget(imageFilenameLabel);

	// Image filename input
	//TODO
	imageFilenameInput = new QLineEdit();
	formLayout->addWidget(imageFilenameInput);



	// Add button
	//TODO
	addButton = new QPushButton("Add Pokemon");
	connect(addButton, SIGNAL(clicked()), this, SLOT(addPokemon()));
	formLayout->addWidget(addButton);




	// Set overall layout
	setLayout(overallLayout);
}