private void fire() {
        for (Tower tower : gameElements.towers) {
            if ((ticks % tower.getSpeed()) == 0) {
                int towerRange = tower.getRange();
                // Ha köd ereszkedik le
                if (gameElements.fog != null) {
                    if (gameElements.fog.getMiddle().distance(tower.getPosition()) < gameElements.fog.getRange()) {
                        towerRange = towerRange / 2;
                    }
                }
                for (Enemy enemy : gameElements.enemies) {
                    if (tower.getPosition().distance(enemy.getPosition()) < towerRange) {
                        System.out.println("Torony (" + tower.getPosition().getX() + ", " + tower.getPosition().getY() + "): Lő");

                        Enemy temp = tower.fire(enemy);
                        gameElements.shots.add(new Line2D.Double(tower.getPosition().getX(), tower.getPosition().getY(),
                                enemy.getPosition().getX(), enemy.getPosition().getY()));
                        if (enemy.getLife() <= 0) {
                            gameElements.enemies.remove(enemy);
                            System.out.println("Ellenség (" + enemy.getPosition().getX() + ", " + enemy.getPosition().getY() + "): Meghal");

                            gameElements.saruman.setSpellPower(gameElements.saruman.getSpellPower() + 1);
                        } else if (temp != null) {
                            gameElements.enemies.add(temp);
                            System.out.println("Ellenség (" + enemy.getPosition().getX() + ", " + enemy.getPosition().getY() + "): félbevágódik");
                        }
                        break;
                    }
                }
            }
        }
    }