API

CBSProfileTasksModule.GetAllTasksFromPool - Get list of all tasks from pool.

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        ProfileTasksModule.GetAllTasksFromPool(profileTasksPoolID, OnGet);
    }

    private void OnGet(CBSGetTasksFromPoolResult result)
    {
        if (result.IsSuccess)
        {
            var tasks = result.Tasks;

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

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

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

CBSProfileTasksModule.GetTasksForProfile - Get tasks available for profile from pool

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        ProfileTasksModule.GetTasksForProfile(profileTasksPoolID, OnGet);
    }

    private void OnGet(CBSGetTasksForProfileResult result)
    {
        if (result.IsSuccess)
        {
            var tasks = result.Tasks;
            var resetDate = result.ResetDate;

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

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

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

CBSProfileTasksModule.AddTaskPoint - Adds a point to an task. For Tasks "OneShot" completes it immediately, for Tasks "Steps" - adds one step

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var taskID = "your task ID";
        ProfileTasksModule.AddTaskPoint(profileTasksPoolID, taskID, OnAdd);
    }

    private void OnAdd(CBSModifyProfileTaskPointsResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Task;
            var completed = result.CompleteTask;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSProfileTasksModule.AddTaskPoints - Adds the points you specified to the task. More suitable for Steps task.

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var taskID = "your task ID";
        var pointsToAdd = 10;
        ProfileTasksModule.AddTaskPoints(profileTasksPoolID, taskID, pointsToAdd, OnAdd);
    }

    private void OnAdd(CBSModifyProfileTaskPointsResult result)
    {
        if (result.IsSuccess)
        {
            var updatedAchievement = result.Task;
            var completed = result.CompleteTask;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSProfileTasksModule.UpdateTaskPoint - Updates the task points you specified. More suitable for Steps tasks.

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var taskID = "your task ID";
        var pointsToAdd = 10;
        ProfileTasksModule.UpdateTaskPoint(profileTasksPoolID, taskID, pointsToAdd, OnUpdate);
    }

    private void OnUpdate(CBSModifyProfileTaskPointsResult result)
    {
        if (result.IsSuccess)
        {
            var updatedTask = result.Task;
            var completed = result.CompleteTask;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSProfileTasksModule.AddMultiplicityTasksPoint - Adds a points to multiplicity task. For Tasks "OneShot" completes it immediately, for Tasks "Steps" - adds one step

using System.Collections.Generic;
using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var tasksUpdateEntry = new Dictionary<string, int>();
        tasksUpdateEntry["task 1"] = 2;
        tasksUpdateEntry["task 2"] = 5;
        tasksUpdateEntry["task 3"] = 8;
        ProfileTasksModule.AddMultiplicityTasksPoint(profileTasksPoolID, tasksUpdateEntry, OnAdd);
    }

    private void OnAdd(CBSModifyProfileMultiplyTaskResult result)
    {
        if (result.IsSuccess)
        {
            foreach (var taskResultPair in result.TasksResults)
            {
                var taskResult = taskResultPair.Value;
                var updatedTask = taskResult.Task;
                var completed = taskResult.CompleteTask;
                var completeTier = taskResult.CompleteTier;
                var rewardResult = taskResult.ReceivedReward;
            }
        }
    }
}
using System.Collections.Generic;
using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var tasksUpdateEntry = new Dictionary<string, int>();
        tasksUpdateEntry["task 1"] = 2;
        tasksUpdateEntry["task 2"] = 5;
        tasksUpdateEntry["task 3"] = 8;
        ProfileTasksModule.UpdateMultiplicityTasksPoint(profileTasksPoolID, tasksUpdateEntry, OnUpdate);
    }

    private void OnUpdate(CBSModifyProfileMultiplyTaskResult result)
    {
        if (result.IsSuccess)
        {
            foreach (var taskResultPair in result.TasksResults)
            {
                var taskResult = taskResultPair.Value;
                var updatedTask = taskResult.Task;
                var completed = taskResult.CompleteTask;
                var completeTier = taskResult.CompleteTier;
                var rewardResult = taskResult.ReceivedReward;
            }
        }
    }
}

CBSProfileTasksModule.PickupTaskReward - Pick up a reward from a completed task if it hasn't been picked up before.

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";
        var taskID = "task id";

        ProfileTasksModule.PickupTaskReward(profileTasksPoolID, taskID, OnGet);
    }

    private void OnGet(CBSModifyProfileTaskPointsResult result)
    {
        if (result.IsSuccess)
        {
            var updatedTask = result.Task;
            var completeTask = result.CompleteTask;
            var completeTier = result.CompleteTier;
            var rewardResult = result.ReceivedReward;
        }
    }
}

CBSProfileTasksModule.ResetAndGetNewTasks - Reset tasks states for pool and get new random tasks.

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";

        ProfileTasksModule.ResetAndGetNewTasks(profileTasksPoolID, OnGet);
    }

    private void OnGet(CBSGetTasksForProfileResult result)
    {
        if (result.IsSuccess)
        {
            var tasks = result.Tasks;
            var resetDate = result.ResetDate;

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

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

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

CBSProfileTasksModule.GetTasksBadge - Get the number of completed tasks that did not receive rewards

using CBS;
using CBS.Models;
using UnityEngine;

public class ProfileTasksExample : MonoBehaviour
{
    private IProfileTasks ProfileTasksModule { get; set; }

    private void Start()
    {
        ProfileTasksModule = CBSModule.Get<CBSProfileTasksModule>();

        var profileTasksPoolID = "tasks pool id";

        ProfileTasksModule.GetTasksBadge(profileTasksPoolID, OnGet);
    }

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

Last updated