AddPowerup - Inf512-MotorolaScienceCup/gra-PANG GitHub Wiki

AddPowerup

Funkcja dodająca losowy Powerup. Nie jest on jednak zawsze dodawany, a szansę na jego dodanie ustalana jest w zmiennej chance.

void Game::AddPowerup(float x, float y) {
    if (modNum == 1) return;

    SetRandomSeed(time(nullptr));
    int chance = GetRandomValue(1, 3);
    if (chance == 1) {
        int kindNum;
        if (modNum != 3) {
            if (weaponType == 2)
                kindNum = GetRandomValue(2, 4);
            else
                kindNum = GetRandomValue(1, 4);
        } else {
            if (weaponType == 2)
                kindNum = GetRandomValue(2, 5);
            else
                kindNum = GetRandomValue(1, 5);
        }
        Sprite* s;
        switch (kindNum) {
        case 1:
            s = new Powerup(this, x, y, Powerup::Kind::DOUBLE);
            spriteMap[Sprite::Type::POWERUP].push_back(s);
            sprites.push_back(s);
            break;
        case 2:
            s = new Powerup(this, x, y, Powerup::Kind::BOOST);
            spriteMap[Sprite::Type::POWERUP].push_back(s);
            sprites.push_back(s);
            break;
        case 3:
            s = new Powerup(this, x, y, Powerup::Kind::TIME);
            spriteMap[Sprite::Type::POWERUP].push_back(s);
            sprites.push_back(s);
            break;
        case 4:
            s = new Powerup(this, x, y, Powerup::Kind::WEAPON);
            spriteMap[Sprite::Type::POWERUP].push_back(s);
            sprites.push_back(s);
            break;
        case 5:
            s = new Powerup(this, x, y, Powerup::Kind::SCORE);
            spriteMap[Sprite::Type::POWERUP].push_back(s);
            sprites.push_back(s);
        }
    }
}