package org.mafagafogigante.dungeon.achievements; import org.mafagafogigante.dungeon.game.Id; import org.mafagafogigante.dungeon.util.CounterMap; import java.util.ArrayList; import java.util.Collection; class AchievementBuilder { private final Collection<BattleStatisticsRequirement> requirements = new ArrayList<>(); private String id; private String name; private String info; private String text; private CounterMap<Id> killsByLocationId; private CounterMap<Id> visitedLocations; private CounterMap<Id> maximumNumberOfVisits; public void setId(String id) { this.id = id; } public void setName(String name) { this.name = name; } public void setInfo(String info) { this.info = info; } public void setText(String text) { this.text = text; } public void addBattleStatisticsRequirement(BattleStatisticsRequirement requirement) { requirements.add(requirement); } public void setKillsByLocationId(CounterMap<Id> killsByLocationId) { if (killsByLocationId.isNotEmpty()) { this.killsByLocationId = killsByLocationId; } } public void setVisitedLocations(CounterMap<Id> visitedLocations) { if (visitedLocations.isNotEmpty()) { this.visitedLocations = visitedLocations; } } public void setMaximumNumberOfVisits(CounterMap<Id> maximumNumberOfVisits) { if (maximumNumberOfVisits.isNotEmpty()) { this.maximumNumberOfVisits = maximumNumberOfVisits; } } public Achievement createAchievement() { return new Achievement(id, name, info, text, requirements, killsByLocationId, visitedLocations, maximumNumberOfVisits); } }