package de.golfgl.gdxgamesvcs; import com.badlogic.gdx.utils.JsonValue; import de.golfgl.gdxgamesvcs.achievement.IAchievement; /** * GameJolt Trophy * <p> * Created by Benjamin Schulte on 16.08.2017. */ public class GjTrophy implements IAchievement { protected String trophyId; protected String trophyTitle; protected String trophyDesc; protected String iconUrl; protected String trophyAchieved; protected String difficulty; protected IGameServiceIdMapper<Integer> trophyMapper; protected static GjTrophy fromJson(JsonValue json) { GjTrophy trophy = new GjTrophy(); trophy.difficulty = json.getString("difficulty"); trophy.trophyAchieved = json.getString("achieved"); trophy.iconUrl = json.getString("image_url"); trophy.trophyDesc = json.getString("description"); trophy.trophyTitle = json.getString("title"); trophy.trophyId = json.getString("id"); return trophy; } public IGameServiceIdMapper<Integer> getTrophyMapper() { return trophyMapper; } protected void setTrophyMapper(IGameServiceIdMapper<Integer> trophyMapper) { this.trophyMapper = trophyMapper; } @Override public String getAchievementId() { return trophyId; } @Override public boolean isAchievementId(String achievementId) { if (trophyMapper == null) throw new IllegalStateException("No trophy mapper given"); Integer mappedId = trophyMapper.mapToGsId(achievementId); return mappedId != null && mappedId.toString().equals(getAchievementId()); } @Override public String getTitle() { return trophyTitle; } @Override public String getDescription() { return trophyDesc; } @Override public float getCompletionPercentage() { return (isUnlocked() ? 1f : 0); } @Override public boolean isUnlocked() { return (trophyAchieved != null && !trophyAchieved.equalsIgnoreCase("false")); } @Override public String getIconUrl() { return iconUrl; } }