예제 #1
0
void Pokemon::SetStatsForLevel()
{
	setHP(round(ceil(2 * getBaseHP() + 31) * getLevel() / 100 + getLevel() + 10));
   setAtt(round(ceil(2 * getBaseAtt() + 31) * getLevel() / 100 + 5));
   setDef(round(ceil(2 * getBaseDef() + 31) * getLevel() / 100 + 5));
   setSpeed(round(ceil(2 * getBaseSpeed() + 31) * getLevel() / 100 + 5));

	setCurrentHP(getHP());
	setCurrentAtt(getAtt());
	setCurrentDef(getDef());
	setCurrentSpeed(getSpeed());
}
예제 #2
0
QMap<QString, pokemonStruct> accessAllCaughtPokemon(QString trainerName)
{
    QMap<QString, pokemonStruct> data;
    QSqlQuery query(Dynamic);
    QString statement = "SELECT * FROM CaughtPokemon WHERE trainer='" + trainerName + "'";
    if( !query.exec(statement) )
    {
        qDebug() << query.lastError().databaseText();
        return data;
    }
    while( query.next() )
    {        
        pokemonStruct saved;
        saved.PID = query.record().field("PID").value().toInt();
        saved.attEV = query.record().field("AtEV").value().toInt();
        saved.CPID = query.record().field("CPID").value().toInt();
        saved.defEV = query.record().field("DefEV").value().toInt();
        saved.EXP = query.record().field("EXP").value().toInt();
        saved.HPEV = query.record().field("HPEV").value().toInt();
        saved.speedEV = query.record().field("speedEV").value().toInt();
        saved.HP = query.record().field("HP").value().toInt();
        saved.level = getLevel(saved.EXP);
        saved.name = getPokemonName(QString::number(saved.PID));
        saved.attack = getStat(saved.attEV, getBaseAtt(saved.name), saved.level);
        saved.defense = getStat(saved.defEV, getBaseDef(saved.name), saved.level);
        saved.speed = getStat(saved.speedEV, getBaseSpeed(saved.name), saved.level);
        saved.HP = getHP(saved.HPEV, getBaseHP(saved.name), saved.level);
        QString moves = query.record().field("Moves").value().toString();
        QStringList l = moves.split("|");
        for(int i = 0; i < l.size(); i++)
        {
            QStringList m = l[i].split(".");
            moveStruct move;
            move.name = m[0];
            move.pp = m[1].toInt();
            move.accuracy = getAccuracy(move.name);
            move.damage = getDamage(move.name);
            move.type = getMoveType(move.name);
            saved.moves.append(move);
        }
        data.insert(saved.name, saved);
    }
    return data;
}