public void shoot() {
        double cooling = baseCooldown;
        double agility = 0;
        String[] sprites;
        if (isPlayer())
            sprites = new String[]{"bullet/blue/long"};
        else
            sprites = new String[]{"bullet/purple/long"};

        for (GunUpgrade up : gunUpgrades) {
            cooling = up.getCooldown(cooling);
            agility = up.getAgility(agility);
            sprites = up.getSprites(sprites);
        }
        cooldownTimer = (int) cooling;
        for (Bullet b : applyAllUpgrades(sprites)) {
            if (b.getSeeking())
                b.seek(agility, getNearestTarget());
            b.setSprites(sprites);
            spawnBullet(b);
        }
    }