package com.mygdx.game;

/**
 * Перечисление всех достижений в игре.
 */
public enum Achievement {
    // Строительство
    FIRST_BUILDING("first_building", 
        "Первый кирпич", "First Brick",
        "Построй первое здание", "Build your first building"),
    
    BUILDER_5("builder_5", 
        "Строитель", "Builder",
        "Построй 5 зданий", "Build 5 buildings"),
    
    BUILDER_10("builder_10", 
        "Архитектор", "Architect",
        "Построй 10 зданий", "Build 10 buildings"),
    
    BUILDER_25("builder_25", 
        "Мастер-строитель", "Master Builder",
        "Построй 25 зданий", "Build 25 buildings"),
    
    // Планеты
    MARS_VISITOR("mars_visitor", 
        "Марсианин", "Martian",
        "Посети Марс", "Visit Mars"),
    
    VENUS_VISITOR("venus_visitor", 
        "Венерианец", "Venusian",
        "Посети Венеру", "Visit Venus"),
    
    ALL_PLANETS("all_planets", 
        "Космонавт", "Astronaut",
        "Посети все планеты", "Visit all planets"),
    
    // Математика
    MATH_STREAK_5("math_streak_5", 
        "Умник", "Smart One",
        "5 правильных ответов подряд", "5 correct answers in a row"),
    
    MATH_STREAK_10("math_streak_10", 
        "Математик", "Mathematician",
        "10 правильных ответов подряд", "10 correct answers in a row"),
    
    MATH_STREAK_20("math_streak_20", 
        "Гений", "Genius",
        "20 правильных ответов подряд", "20 correct answers in a row");
    
    private final String id;
    private final String titleRu;
    private final String titleEn;
    private final String descriptionRu;
    private final String descriptionEn;
    
    Achievement(String id, String titleRu, String titleEn, 
                String descriptionRu, String descriptionEn) {
        this.id = id;
        this.titleRu = titleRu;
        this.titleEn = titleEn;
        this.descriptionRu = descriptionRu;
        this.descriptionEn = descriptionEn;
    }
    
    public String getId() {
        return id;
    }
    
    public String getTitle() {
        return Localization.isRu() ? titleRu : titleEn;
    }
    
    public String getDescription() {
        return Localization.isRu() ? descriptionRu : descriptionEn;
    }
    
    public String getTitleRu() {
        return titleRu;
    }
    
    public String getTitleEn() {
        return titleEn;
    }
    
    /**
     * Найти достижение по ID
     */
    public static Achievement fromId(String id) {
        for (Achievement a : values()) {
            if (a.id.equals(id)) {
                return a;
            }
        }
        return null;
    }
}
