API
CBSItemsModule.FetchAll - Updates the state of all items from the Playfab database(include recipes, upgrades, categories). Do not use unnecessarily. This method is called at login.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
ItemModule.FetchAll(OnFetch);
}
private void OnFetch(CBSFetchAllResult result)
{
if (result.IsSuccess)
{
var items = result.Items;
var packs = result.Packs;
var lootboxes = result.Lootboxes;
var recipesData = result.Recipes;
var upgradesData = result.Upgrades;
var itemsCatergories = result.ItemsCategories;
var packsCaterories = result.PacksCategories;
var lootboxCategories = result.LootboxCategories;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GetCategories - Get all categories by specific items type.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
ItemModule.GetCategories(ItemType.ITEMS, OnGetCategories);
}
private void OnGetCategories(CBSGetCategoriesResult result)
{
if (result.IsSuccess)
{
var itemsCategories = result.Categories;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GetCBSItems - Get all items by type or category.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var request = new CBSGetItemsRequest
{
ItemType = ItemType.ITEMS,
SpecificCategory = "my category"
};
ItemModule.GetCBSItems(request, OnGetCategories);
}
private void OnGetCategories(CBSGetItemsResult result)
{
if (result.IsSuccess)
{
var items = result.Items;
var lootboxes = result.Lootboxes;
var packs = result.Packs;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GetCBSItemByID - Get specific cbs item information by id.
using CBS;
using CBS.Example;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemID = "my item id";
ItemModule.GetCBSItemByID(itemID, OnGetItem);
}
private void OnGetItem(CBSGetItemResult result)
{
if (result.IsSuccess)
{
var item = result.Item;
var itemID = item.ItemID;
var category = item.Category;
var displayName = item.DisplayName;
var description = item.Description;
var itemClass = item.ItemClass;
var externalURL = item.ExternalIconURL;
var type = item.Type;
var prices = item.Prices;
var customData = item.GetCustomData<SwordData>();
var customDataAsDictionary = item.GetCustomDataAsDictionary();
var attack = customDataAsDictionary["Attack"];
var speed = customDataAsDictionary["Speed"];
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.PurchaseCBSItemWithCurrency - Purchase item by id. The currency will be debited automatically and the item will be added to the inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemID = "my item id";
var currencyCode = "GD";
var currencyValue = 100;
ItemModule.PurchaseCBSItemWithCurrency(itemID, currencyCode, currencyValue, OnPurchaseItem);
}
private void OnPurchaseItem(CBSPurchaseItemWithCurrencyResult result)
{
if (result.IsSuccess)
{
var itemID = result.ItemID;
var purchasedInstances = result.PurchasedInstances;
var purchasedCurrencies = result.PurchasedCurrencies;
var priceCode = result.PriceCode;
var priceValue = result.PriceValue;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.PurchaseCBSItemWithRealMoney - Purchase item with Unity IAP module. Currently working with iOS/Android only.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemID = "my item id";
ItemModule.PurchaseCBSItemWithRealMoney(itemID, OnPurchaseItem);
}
private void OnPurchaseItem(CBSPurchaseItemWithRealMoneyResult result)
{
if (result.IsSuccess)
{
var profileID = result.ProfileID;
var itemID = result.ItemID;
var purchasedInstances = result.PurchasedInstances;
var purchasedCurrencies = result.PurchasedCurrencies;
var transactionID = result.TransactionID;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GrantItem- Add item to current auth user. The item automatically goes into inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemID = "my item id";
ItemModule.GrantItem(itemID, OnGrantItem);
}
private void OnGrantItem(CBSGrantItemsResult result)
{
if (result.IsSuccess)
{
var profileID = result.TargetID;
var grantedInstances = result.GrantedInstances;
var grantedCurrencies = result.GrantedCurrencies;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GrantItems - Add items to current auth user. The items automatically goes into inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemsID = new string[]
{
"item id 1",
"item id 2",
"item id 3"
};
ItemModule.GrantItems(itemsID, OnGrantItem);
}
private void OnGrantItem(CBSGrantItemsResult result)
{
if (result.IsSuccess)
{
var profileID = result.TargetID;
var grantedInstances = result.GrantedInstances;
var grantedCurrencies = result.GrantedCurrencies;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GrantItemToProfile - Add item to profile by id. The item automatically goes into inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemID = "itemID";
var profileIDToGrant = "some profile id";
ItemModule.GrantItemToProfile(profileIDToGrant, itemID, OnGrantItem);
}
private void OnGrantItem(CBSGrantItemsResult result)
{
if (result.IsSuccess)
{
var profileID = result.TargetID;
var grantedInstances = result.GrantedInstances;
var grantedCurrencies = result.GrantedCurrencies;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSItemsModule.GrantItemsToProfile - Add items to profile by id. The item automatically goes into inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class ItemsExample : MonoBehaviour
{
private ICBSItems ItemModule { get; set; }
private void Start()
{
ItemModule = CBSModule.Get<CBSItemsModule>();
var itemsID = new string[]
{
"item id 1",
"item id 2",
"item id 3"
};
var profileIDToGrant = "some profile id";
ItemModule.GrantItemsToProfile(profileIDToGrant, itemsID, OnGrantItem);
}
private void OnGrantItem(CBSGrantItemsResult result)
{
if (result.IsSuccess)
{
var profileID = result.TargetID;
var grantedInstances = result.GrantedInstances;
var grantedCurrencies = result.GrantedCurrencies;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.GetRecipeDependencyState - Get the status of all ingredients for a craft item.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var recipeID = "recipeID";
Crafting.GetRecipeDependencyState(recipeID, OnGetDependency);
}
private void OnGetDependency(CBSGetRecipeDependencyStateResult result)
{
if (result.IsSuccess)
{
var itemIDToCraft = result.ItemIDToCraft;
var dependencyContainer = result.DependencyState;
var ingredientsDependency = dependencyContainer.ItemsState;
var currenciesDependency = dependencyContainer.CurrenciesState;
var readyToCraft = dependencyContainer.ReadyToGraft();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.GetRecipeDependencyStateFromCache - Get the status of all ingredients for a craft item from cache. Requires "Preload Inventory", "Preload Currency" options enabled.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var recipeID = "recipeID";
Crafting.GetRecipeDependencyStateFromCache(recipeID, OnGetDependency);
}
private void OnGetDependency(CBSGetRecipeDependencyStateResult result)
{
if (result.IsSuccess)
{
var itemIDToCraft = result.ItemIDToCraft;
var dependencyContainer = result.DependencyState;
var ingredientsDependency = dependencyContainer.ItemsState;
var currenciesDependency = dependencyContainer.CurrenciesState;
var readyToCraft = dependencyContainer.ReadyToGraft();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.CraftItemFromRecipe - Craft item by inventory id (Instance ID) of the recipe. Requires instance of recipe in inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var recipeInstanceID = "recipeInstanceID";
Crafting.CraftItemFromRecipe(recipeInstanceID, OnCraftItem);
}
private void OnCraftItem(CBSCraftResult result)
{
if (result.IsSuccess)
{
var craftedItemInstance = result.CraftedItemInstance;
var spendedInstancesIDs = result.SpendedInstancesIDs;
var spendedCurrencies = result.SpendedCurrencies;
var consumedItems = result.ConsumedItems;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.CraftItemFromRecipeTemplate - Craft item by item id (Catalog Item ID) of the recipe. Does not require an instance of recipe in inventory.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var recipeItemID = "recipeID";
Crafting.CraftItemFromRecipeTemplate(recipeItemID, OnCraftItem);
}
private void OnCraftItem(CBSCraftResult result)
{
if (result.IsSuccess)
{
var craftedItemInstance = result.CraftedItemInstance;
var spendedInstancesIDs = result.SpendedInstancesIDs;
var spendedCurrencies = result.SpendedCurrencies;
var consumedItems = result.ConsumedItems;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.GetItemNextUpgradeState - Get the status of next item upgrade, include ingredients dependency.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var itemInstanceID = "instance id";
Crafting.GetItemNextUpgradeState(itemInstanceID, OnGetState);
}
private void OnGetState(CBSGetNextUpgradeStateResult result)
{
if (result.IsSuccess)
{
var profileID = result.ProfileID;
var itemID = result.ItemID;
var instanceID = result.ItemInstanceID;
var reachMaxUpgrade = result.IsMax;
var currentUpgradeIndex = result.CurrentUpgradeIndex;
var nextUpgradeIndex = result.NextUpgradeIndex;
var nextUpgradeState = result.NextUpgradeState;
var dependencyState = result.DependencyState;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.GetItemNextUpgradeStateFromCache - Get the status of next item upgrade from cache, include ingredients dependency. Requires "Preload Inventory", "Preload Currency" options enabled.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var itemInstanceID = "instance id";
Crafting.GetItemNextUpgradeStateFromCache(itemInstanceID, OnGetState);
}
private void OnGetState(CBSGetNextUpgradeStateResult result)
{
if (result.IsSuccess)
{
var profileID = result.ProfileID;
var itemID = result.ItemID;
var instanceID = result.ItemInstanceID;
var reachMaxUpgrade = result.IsMax;
var currentUpgradeIndex = result.CurrentUpgradeIndex;
var nextUpgradeIndex = result.NextUpgradeIndex;
var nextUpgradeState = result.NextUpgradeState;
var dependencyState = result.DependencyState;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSCraftingModule.UpgradeItemToNextLevel - Upgrade item to next level.
using CBS;
using CBS.Models;
using UnityEngine;
public class CraftingExample : MonoBehaviour
{
private ICrafting Crafting { get; set; }
private void Start()
{
Crafting = CBSModule.Get<CBSCraftingModule>();
var itemInstanceID = "instance id";
Crafting.UpgradeItemToNextLevel(itemInstanceID, OnUpgrade);
}
private void OnUpgrade(CBSUpgradeItemResult result)
{
if (result.IsSuccess)
{
var profileID = result.ProfileID;
var upgradedLevelIndex = result.UpgradedLevelIndex;
var upgradedItem = result.UpgradedItem;
var spendedInstanesIDs = result.SpendedInstanesIDs;
var spendedCurrencies = result.SpendedCurrencies;
var consumedItems = result.ConsumedItems;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
Last updated