Android Open Source - gameup-android-sdk Achievement






From Project

Back to project page gameup-android-sdk.

License

The source code is released under:

Apache License

If you think the Android project gameup-android-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2014-2015 GameUp//from  w  w w. j a  v  a2 s  .c  o m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.gameup.android.entity;

import com.google.gson.annotations.SerializedName;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * Represents an achievement's data, also contains gamer progress if applicable.
 */
@Data
@AllArgsConstructor(suppressConstructorProperties = true)
public class Achievement {

    /** Game-unique public identifier for this achievement. */
    private final String publicId;

    /** Achievement name. */
    private final String name;

    /** Achievement description or instructions. */
    private final String description;

    /** The type of the achievement, referring to gamer interaction model. */
    private final Type type;

    /**
     * Number of points that will be awarded for completing this achievement,
     * or have already been awarded if it is already complete.
     */
    private final int points;

    /** The state of this achievement, referring to display logic. */
    private final State state;

    /**
     * Required number of actions to complete this achievement, subject to game
     * logic. For "normal"-type achievements this will always be 1.
     */
    private final int requiredCount;

    /**
     * Current gamer progress towards the required count of this achievement,
     * subject to the same game logic as the requiredCount field.
     */
    private final int count;

    /**
     * UTC timestamp in milliseconds when the gamer last made any progress
     * towards this achievement, or 0 if no progress ever.
     */
    private final long progressAt;

    /**
     * UTC timestamp in milliseconds when the gamer completed this achievement,
     * or 0 if it has not yet been completed.
     */
    private final long completedAt;

    /**
     * @return true if the gamer has completed this achievement,
     *         false otherwise.
     */
    public boolean isCompleted() {
        return completedAt > 0l;
    }

    /**
     * Achievement Type, referring to how gamer interaction must occur.
     */
    public static enum Type {

        /** Standard earned/unearned achievement. */
        @SerializedName("normal")
        NORMAL,

        /**
         * Incremental achievement, requiring some number of actions before it
         * is awarded, subject to game logic.
         */
        @SerializedName("incremental")
        INCREMENTAL

    }

    /**
     * Achievement State, referring to how display should be handled.
     */
    public static enum State {

        /** The achievement and all its details are available to the gamer. */
        @SerializedName("visible")
        VISIBLE,

        /**
         * The name and description are replaced with "???", unless the gamer
         * has completed the achievement.
         */
        @SerializedName("secret")
        SECRET,

        /**
         * The achievement does not appear at all, unless the gamer has
         * completed the achievement.
         */
        @SerializedName("hidden")
        HIDDEN

    }

}




Java Source Code List

io.gameup.android.GameUpLoginListener.java
io.gameup.android.GameUpSession.java
io.gameup.android.GameUp.java
io.gameup.android.Utils.java
io.gameup.android.entity.AchievementList.java
io.gameup.android.entity.Achievement.java
io.gameup.android.entity.Game.java
io.gameup.android.entity.Gamer.java
io.gameup.android.entity.LeaderboardAndRank.java
io.gameup.android.entity.Leaderboard.java
io.gameup.android.entity.Rank.java
io.gameup.android.entity.Server.java
io.gameup.android.http.OkHttpClientFactory.java
io.gameup.android.http.RequestFactory.java
io.gameup.android.json.AchievementProgress.java
io.gameup.android.json.GsonFactory.java
io.gameup.android.json.LeaderboardSubmission.java
io.gameup.android.json.StorageGetWrapper.java