API

CBSAchievementsModule.GetAchievementsTable - Get information for all achievements and their player state.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();
        
        AchievementModule.GetAchievementsTable(OnGet);
    }

    private void OnGet(CBSGetAchievementsTableResult result)
    {
        if (result.IsSuccess)
        {
            var achievementsData = result.AchievementsData;
            var achievements = achievementsData.Tasks;
            var autoReward = achievementsData.AutomaticReward;
            var deliveryType = achievementsData.RewardDelivery;

            foreach (var achievement in achievements)
            {
                var id = achievement.ID;
                var title = achievement.Title;
                var description = achievement.Description;
                var tag = achievement.Tag;
                var poolID = achievement.PoolID;
                var type = achievement.Type;
                var steps = achievement.Steps;
                var isLockedByLevel = achievement.IsLockedByLevel;
                var lockLevel = achievement.LockLevel;
                var levelFilter = achievement.LevelFilter;
                var externalUrl = achievement.ExternalUrl;
                var reward = achievement.Reward;
                var tierList = achievement.TierList;

                var isComplete = achievement.IsComplete;
                var isAvailable = achievement.IsAvailable;
                var rewarded = achievement.Rewarded;
                var tierIndex = achievement.TierIndex;
                var currentStep = achievement.CurrentStep;
                var currentTier = achievement.CurrentTier;

                var customData = achievement.GetCustomData<CBSTaskCustomData>();
            }
        }
    }
}

CBSAchievementsModule.GetActiveAchievementsTable - Get information for all available achievements for player achievements.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();
        
        AchievementModule.GetActiveAchievementsTable(OnGet);
    }

    private void OnGet(CBSGetAchievementsTableResult result)
    {
        if (result.IsSuccess)
        {
            var achievementsData = result.AchievementsData;
            var achievements = achievementsData.Tasks;
            var autoReward = achievementsData.AutomaticReward;
            var deliveryType = achievementsData.RewardDelivery;

            foreach (var achievement in achievements)
            {
                var id = achievement.ID;
                var title = achievement.Title;
                var description = achievement.Description;
                var tag = achievement.Tag;
                var poolID = achievement.PoolID;
                var type = achievement.Type;
                var steps = achievement.Steps;
                var isLockedByLevel = achievement.IsLockedByLevel;
                var lockLevel = achievement.LockLevel;
                var levelFilter = achievement.LevelFilter;
                var externalUrl = achievement.ExternalUrl;
                var reward = achievement.Reward;
                var tierList = achievement.TierList;

                var isComplete = achievement.IsComplete;
                var isAvailable = achievement.IsAvailable;
                var rewarded = achievement.Rewarded;
                var tierIndex = achievement.TierIndex;
                var currentStep = achievement.CurrentStep;
                var currentTier = achievement.CurrentTier;

                var customData = achievement.GetCustomData<CBSTaskCustomData>();
            }
        }
    }
}

CBSAchievementsModule.GetCompletedAchievementsTable - Get information for all completed achievements for player achievements

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();
        
        AchievementModule.GetCompletedAchievementsTable(OnGet);
    }

    private void OnGet(CBSGetAchievementsTableResult result)
    {
        if (result.IsSuccess)
        {
            var achievementsData = result.AchievementsData;
            var achievements = achievementsData.Tasks;
            var autoReward = achievementsData.AutomaticReward;
            var deliveryType = achievementsData.RewardDelivery;

            foreach (var achievement in achievements)
            {
                var id = achievement.ID;
                var title = achievement.Title;
                var description = achievement.Description;
                var tag = achievement.Tag;
                var poolID = achievement.PoolID;
                var type = achievement.Type;
                var steps = achievement.Steps;
                var isLockedByLevel = achievement.IsLockedByLevel;
                var lockLevel = achievement.LockLevel;
                var levelFilter = achievement.LevelFilter;
                var externalUrl = achievement.ExternalUrl;
                var reward = achievement.Reward;
                var tierList = achievement.TierList;

                var isComplete = achievement.IsComplete;
                var isAvailable = achievement.IsAvailable;
                var rewarded = achievement.Rewarded;
                var tierIndex = achievement.TierIndex;
                var currentStep = achievement.CurrentStep;
                var currentTier = achievement.CurrentTier;

                var customData = achievement.GetCustomData<CBSTaskCustomData>();
            }
        }
    }
}

CBSAchievementsModule.AddAchievementPoint - Adds a point to an achievement. For Achievements "OneShot" completes it immediately, for Achievements "Steps" - adds one step

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();

        var achievementID = "your achievement ID";
        AchievementModule.AddAchievementPoint(achievementID, OnAdd);
    }

    private void OnAdd(CBSModifyAchievementPointResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Achievement;
            var completed = result.CompleteAchievement;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSAchievementsModule.AddAchievementPoint - Adds the points you specified to the achievement. More suitable for Steps achievements.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();

        var achievementID = "your achievement ID";
        var pointsToAdd = 10;
        AchievementModule.AddAchievementPoint(achievementID, pointsToAdd, OnAdd);
    }

    private void OnAdd(CBSModifyAchievementPointResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Achievement;
            var completed = result.CompleteAchievement;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSAchievementsModule.UpdateAchievementPoint - Updates the achievement points you specified. More suitable for Steps achievements.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();

        var achievementID = "your achievement ID";
        var pointsToUpdate = 10;
        AchievementModule.UpdateAchievementPoint(achievementID, pointsToUpdate, OnUpdate);
    }

    private void OnUpdate(CBSModifyAchievementPointResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Achievement;
            var completed = result.CompleteAchievement;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSAchievementsModule.PickupAchievementReward - Pick up a reward from a completed achievement if it hasn't been picked up before.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();

        var achievementID = "your achievement ID";
        AchievementModule.PickupAchievementReward(achievementID, OnGet);
    }

    private void OnGet(CBSPickupAchievementRewardResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Achievement;
            var rewardResult = result.ReceivedReward;

            var grantedInstances = rewardResult.GrantedInstances;
            var grantedCurrencies = rewardResult.GrantedCurrencies;
        }
    }
}

CBSAchievementsModule.ResetAchievement - Reset the state of profile for a specific achievement.

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();

        var achievementID = "your achievement ID";
        AchievementModule.ResetAchievement(achievementID, OnReset);
    }

    private void OnReset(CBSResetAchievementResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Achievement;
        }
    }
}

CBSAchievementsModule.GetAchievementsBadge - Get the number of completed achievements that did not receive rewards

using CBS;
using CBS.Models;
using UnityEngine;

public class AchievementsExample : MonoBehaviour
{
    private IAchievements AchievementModule { get; set; }

    private void Start()
    {
        AchievementModule = CBSModule.Get<CBSAchievementsModule>();
        
        AchievementModule.GetAchievementsBadge(OnGet);
    }

    private void OnGet(CBSBadgeResult result)
    {
        if (result.IsSuccess)
        {
            var completedAndNotRewaredAchievementsCount = result.Count;
        }
    }
}

Last updated