Coverage Summary for Class: AchievementManager (io.github.unisim)

Class Class, % Method, % Branch, % Line, %
AchievementManager 100% (1/1) 55.6% (5/9) 72.2% (13/18) 69% (20/29)


 package io.github.unisim;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class AchievementManager {
     private List<Achievements> achievements;
     private static AchievementManager instance;
     private String rewardOutput;
 
     public AchievementManager() {
         achievements = new ArrayList<>();
         loadAchievements();
     }
 
     //create an instance of the achievementmanager class to be used to unlock achievements
     public static AchievementManager getInstance() {
         if (instance == null) {
             instance = new AchievementManager();
         }
         return instance;
     }
 
     //create every single achievement
     private void loadAchievements() {
         achievements.add(new Achievements("First building placed", "Place your first building"));
         achievements.add(new Achievements("Veteran builder", "Score 10000 points in one game"));
         achievements.add(new Achievements("F is for fun", "Place 4 Recreational buildings"));
     }
 
     //unlock achievements when criteria is met
     public void checkAchievement(String event) {
         switch (event) {
             case "FIRST_BUILDING_PLACED":
                 achievements.get(0).unlock();
                 break;
             case "VETERAN":
                 achievements.get(1).unlock();
                 break;
             case "F_FOR_FUN":
                 achievements.get(2).unlock();
                 break;
         }
     }
 
 
     public List<Achievements> getAchievements() {
         return achievements;
     }
 
 
     public void displayAchievements() {
         for (Achievements achievement : achievements) {
             System.out.println(achievement.getName() + ": " + (achievement.isUnlocked() ? "Unlocked" : "Locked"));
         }
     }
 
     public String getReward() {
         return rewardOutput;
     }
 
     public void setReward(String input) {
         this.rewardOutput = input;
     }
 
     public void resetAchievements() {
         achievements = new ArrayList<>();
         loadAchievements();
     }
 }