AchievementController.java

package io.github.neonteam10.Achievements;

import io.github.neonteam10.GameLogic;
import io.github.neonteam10.map.GameMap;
import io.github.neonteam10.ui.UiStage;

import java.util.ArrayList;
import java.util.List;

public class AchievementController {

    private final List<GameAchievement> achievementList;
    private final GameLogic gameLogic;
    private GameMap gameMap;
    private final UiStage uiStage;


    public AchievementController(GameLogic gameLogic, GameMap gameMap, UiStage uiStage) {
        this.gameLogic = gameLogic;
        this.gameMap = gameMap;
        this.achievementList = new ArrayList<>();
        this.uiStage = uiStage;
        achievementList.add(new AccommodationAchievement(this.gameMap,this.gameLogic));
        achievementList.add(new DiverseAchievement(this.gameMap,this.gameLogic));
        achievementList.add(new EducationAchievement(this.gameMap,this.gameLogic));
        achievementList.add(new FresherAchievement(this.gameMap, this.gameLogic));
        achievementList.add(new GettingStartedAchievement(this.gameMap));
        achievementList.add(new RecreationAchievement(this.gameLogic, this.gameMap));
        achievementList.add(new ScoreAchievement(this.gameMap,this.gameLogic));
    }
    public void AchievementsUnlocked() {
        if (gameMap != null) {
            for (GameAchievement achievement : achievementList) {
                if (!achievement.getUnlocked() && achievement.getUnlockStatus()) {
                    achievement.Unlock();
                    uiStage.activateAchievement(achievement.name, achievement.description);
                }
            }
        }
    }
    public void setGameMap(GameMap gameMap) {
        if (this.gameMap != gameMap) {
            for (GameAchievement achievement : achievementList) {
                achievement.setGameMap(gameMap);
            }

        }

    }

}