package com.stefanhoth.ropasclisp.achievements;

import android.content.Context;
import android.support.annotation.StringRes;

import com.stefanhoth.ropasclisp.R;

public enum ACHIEVEMENT {

    HELLO_THERE(R.string.achievement_hellothere, TYPE.STATIC),
    GOTCHA(R.string.achievement_gotcha, TYPE.STATIC),
    ON_A_ROLL(R.string.achievement_onaroll, TYPE.INCREMENTAL),
    POKER_FACE(R.string.achievement_pokerface, TYPE.INCREMENTAL),
    CONNOISSEUR(R.string.achievement_connoisseur, TYPE.INCREMENTAL),
    ADDICT(R.string.achievement_addict, TYPE.INCREMENTAL);

    private final int achievementId;
    private final TYPE achievementType;

    private enum TYPE{
        STATIC, INCREMENTAL;
    }

    ACHIEVEMENT(@StringRes int achievementId, TYPE achievementType) {
        this.achievementId = achievementId;
        this.achievementType = achievementType;
    }

    public String getAchievementId(final Context context) {
        return context.getString(achievementId);
    }

    public boolean isIncremental() {
        return achievementType == TYPE.INCREMENTAL;
    }
}

@@ -240,24 +240,27 @@
  TYPE.STATIC
+, 1
 ),%0A    GOTCH
@@ -301,16 +301,19 @@
 E.STATIC
+, 1
 ),%0A    O
@@ -487,35 +487,33 @@
 sseur, TYPE.
-INCREMENTAL
+STATIC, 5
 ),%0A    ADDIC
@@ -552,22 +552,69 @@
 YPE.
-INCREMENTAL);%0A
+STATIC, 25);%0A%0A    public static final int NO_GOAL_AMOUNT = 0;
 %0A   
@@ -686,16 +686,50 @@
 entType;
+%0A    private final int goalAmount;
 %0A%0A    pr
@@ -847,24 +847,179 @@
 mentType) %7B%0A
+        this(achievementId, achievementType, NO_GOAL_AMOUNT);%0A    %7D%0A%0A    ACHIEVEMENT(@StringRes int achievementId, TYPE achievementType, int goalAmount) %7B%0A
         this
@@ -1094,24 +1094,62 @@
 vementType;%0A
+        this.goalAmount = goalAmount;%0A
     %7D%0A%0A    p
@@ -1353,11 +1353,108 @@
 L;%0A    %7D
+%0A%0A    public boolean isGoalReached(final int actual) %7B%0A        return actual %3E= goalAmount;%0A    %7D
 %0A%7D%0A

Update 2 achievement types, add goal amount to type + accessor method