public void SetButton(Sprite icon, string sId, StoreItem sItem) { storeId = sId; storeItem = sItem; catalogItem = PF_GameData.GetCatalogItemById(sItem.ItemId); var displayName = catalogItem != null ? catalogItem.DisplayName : "Unknown item"; ActivateButton(); image.overrideSprite = icon; gameObject.name = displayName; ItemDesc.text = displayName; btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { controller.selectedItem = this; InitiatePurchase(); }); uint salePrice, basePrice; finalPrice = GetPrice(out salePrice, out basePrice, out currencyKey); SetIcon(); SetPrice(salePrice, basePrice, currencyKey); }
public void InitiateViewer(List <string> items) // need a new flag to determine if we should unpack to a player or a character { pfItems.Clear(); openedBoxes.Clear(); if (PF_GameData.catalogItems == null || PF_GameData.catalogItems.Count == 0) { return; } foreach (var item in items) { var catalogItem = PF_GameData.GetCatalogItemById(item); if (catalogItem != null) { pfItems.Add(catalogItem); } } PrevItemButton.interactable = false; NextItemButton.interactable = pfItems.Count != 1; //select the first in the list SetSelectedItem(pfItems[0]); selectedIndex = 0; gameObject.SetActive(true); }
public static void GetUserInventory(Action callback = null) { DialogCanvasController.RequestLoadingPrompt(PlayFabAPIMethods.GetUserInventory); PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), (GetUserInventoryResult result) => { virtualCurrency.Clear(); playerInventory.Clear(); foreach (var pair in result.VirtualCurrency) { virtualCurrency.Add(pair.Key, pair.Value); } foreach (var eachItem in result.Inventory) { playerInventory.Add(eachItem); } inventoryByCategory.Clear(); if (PF_GameData.catalogItems.Count > 0) { foreach (var item in playerInventory) { if (inventoryByCategory.ContainsKey(item.ItemId)) { continue; } var catalogItem = PF_GameData.GetCatalogItemById(item.ItemId); if (catalogItem == null) { continue; } var items = playerInventory.FindAll(x => { return(x.ItemId.Equals(item.ItemId)); }); var customIcon = PF_GameData.GetIconByItemById(catalogItem.ItemId); var icon = GameController.Instance.iconManager.GetIconById(customIcon, IconManager.IconTypes.Item); inventoryByCategory.Add(item.ItemId, new InventoryCategory(item.ItemId, catalogItem, items, icon)); } } if (callback != null) { callback(); } PF_Bridge.RaiseCallbackSuccess("", PlayFabAPIMethods.GetUserInventory, MessageDisplayStyle.none); }, PF_Bridge.PlayFabErrorCallback); }
public void SetupSlider(UnityAction <UnlockContainerItemResult> callback = null) { afterUnlock = callback; ItemDescription.text = controller.selectedItem.Description; if (controller.selectedItem.Container != null) { var keyId = controller.selectedItem.Container.KeyItemId; var keyReference = PF_GameData.GetCatalogItemById(keyId); endIcon.gameObject.SetActive(keyReference != null); if (keyReference != null) { var chestQty = PF_PlayerData.GetItemQty(controller.selectedItem.ItemId); var keyQty = PF_PlayerData.GetItemQty(keyId); var useColor = (chestQty > 0 && keyQty > 0) ? Color.cyan : Color.red; endIcon.color = useColor; sliderMessage.text = string.Format("{0} Required ({1} available)", keyReference.DisplayName, Mathf.Min(chestQty, keyQty)); sliderMessage.color = useColor; var iconName = PF_GameData.GetIconByItemById(keyReference.ItemId, GlobalStrings.BRONZE_KEY_ICON); var icon = GameController.Instance.iconManager.GetIconById(iconName, IconManager.IconTypes.Item); handle.overrideSprite = icon; } else { handle.overrideSprite = GameController.Instance.iconManager.GetIconById(GlobalStrings.DARKSTONE_LOCK_ICON, IconManager.IconTypes.Misc); sliderMessage.text = GlobalStrings.UNLOCKED_MSG; } } else { sliderMessage.text = GlobalStrings.UNLOCKED_MSG; // set default key icon or lock or something... } }
public void SetButton(Sprite icon, CatalogItem cItem) { ActivateButton(); this.image.overrideSprite = icon; this.ItemDesc.text = cItem.DisplayName; string currencyKey = "RM"; string currencyFormat = "{0:C2}"; ItemCurrencyIcon.sprite = CurrencyIcons[0]; //For now disable uses: Savings.gameObject.SetActive(false); if (cItem.VirtualCurrencyPrices.ContainsKey(GlobalStrings.GEM_CURRENCY)) { currencyKey = GlobalStrings.GEM_CURRENCY; currencyFormat = "{0}"; ItemCurrencyIcon.sprite = CurrencyIcons[1]; } else if (cItem.VirtualCurrencyPrices.ContainsKey(GlobalStrings.GOLD_CURRENCY)) { currencyKey = GlobalStrings.GOLD_CURRENCY; currencyFormat = "{0}"; ItemCurrencyIcon.sprite = CurrencyIcons[2]; } // check prices to see if this is a better deal than MSRP this.Savings.gameObject.SetActive(false); CatalogItem msrp = PF_GameData.GetCatalogItemById(cItem.ItemId); uint msrpPrice; if (msrp != null && msrp.VirtualCurrencyPrices != null && msrp.VirtualCurrencyPrices.TryGetValue(currencyKey, out msrpPrice)) { // check prices to see if this is a better deal than MSRP uint salePrice; cItem.VirtualCurrencyPrices.TryGetValue(currencyKey, out salePrice); if (salePrice < msrpPrice) { // VC only, not adjusting RM prices yet. float percent = (((float)msrpPrice - (float)salePrice) / (float)msrpPrice); this.SavingsText.text = string.Format("Save\n{0}%", Mathf.RoundToInt(percent * 100f)); this.Savings.gameObject.SetActive(true); } } string price = string.Empty; if (currencyKey == "RM" && cItem.VirtualCurrencyPrices.ContainsKey(currencyKey)) { uint pennies = cItem.VirtualCurrencyPrices[currencyKey]; price = string.Format(currencyFormat, (float)pennies / 100f); } else if (cItem.VirtualCurrencyPrices.ContainsKey(currencyKey)) { price = string.Format(currencyFormat, cItem.VirtualCurrencyPrices[currencyKey]); } this.ItemPrice.text = price; btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { controller.selectedItem = this; controller.InitiatePurchase(); }); this.catalogItem = cItem; }
private static void OnGetUserAccountInfoSuccess(GetPlayerCombinedInfoResult result) { playerInventory.Clear(); foreach (var eachItem in result.InfoResultPayload.UserInventory) { playerInventory.Add(eachItem); } accountInfo = result.InfoResultPayload.AccountInfo; if (result.InfoResultPayload.UserData.ContainsKey("IsRegisteredForPush")) { isRegisteredForPush = result.InfoResultPayload.UserData["IsRegisteredForPush"].Value == "1"; } else { isRegisteredForPush = false; } if (result.InfoResultPayload.UserData.ContainsKey("ShowAccountOptionsOnLogin") && result.InfoResultPayload.UserData["ShowAccountOptionsOnLogin"].Value == "0") { showAccountOptionsOnLogin = false; } else //if (PF_Authentication.hasLoggedInOnce == false) { //PF_Authentication.hasLoggedInOnce = true; DialogCanvasController.RequestAccountSettings(); } inventoryByCategory.Clear(); if (PF_GameData.catalogItems.Count > 0) { foreach (var item in playerInventory) { if (inventoryByCategory.ContainsKey(item.ItemId)) { continue; } var catalogItem = PF_GameData.GetCatalogItemById(item.ItemId); if (catalogItem == null) { continue; } var items = new List <ItemInstance>(playerInventory.FindAll((x) => { return(x.ItemId.Equals(item.ItemId)); })); var customIcon = PF_GameData.GetIconByItemById(catalogItem.ItemId); var icon = GameController.Instance.iconManager.GetIconById(customIcon, IconManager.IconTypes.Item); inventoryByCategory.Add(item.ItemId, new InventoryCategory(item.ItemId, catalogItem, items, icon)); } } if (PF_Authentication.GetDeviceId(true)) { Debug.Log("Mobile Device ID Found!"); var deviceId = string.IsNullOrEmpty(PF_Authentication.android_id) ? PF_Authentication.ios_id : PF_Authentication.android_id; PlayerPrefs.SetString("LastDeviceIdUsed", deviceId); } else { Debug.Log("Custom Device ID Found!"); if (string.IsNullOrEmpty(PF_Authentication.custom_id)) { PlayerPrefs.SetString("LastDeviceIdUsed", PF_Authentication.custom_id); } } virtualCurrency.Clear(); foreach (var eachPair in result.InfoResultPayload.UserVirtualCurrency) { virtualCurrency.Add(eachPair.Key, eachPair.Value); } PF_Bridge.RaiseCallbackSuccess("Player Account Info Loaded", PlayFabAPIMethods.GetAccountInfo, MessageDisplayStyle.none); }
public void SetSelectedItem(CatalogItem item) { selectedItem = item; CurrentItemName.text = selectedItem.DisplayName; CurrentItemDesc.text = selectedItem.Description; ItemCount.text = string.Format("{0}/{1}", selectedIndex + 1, pfItems.Count); // refresh the UI currentIconId = PF_GameData.GetIconByItemById(item.ItemId); var icon = GameController.Instance.iconManager.GetIconById(currentIconId, IconManager.IconTypes.Item); CurrentIcon.overrideSprite = icon; if (openedBoxes.ContainsKey(selectedIndex)) { // this container has been opened, show the items... if (PF_GameData.IsContainer(selectedItem.ItemId)) { CurrentIcon.overrideSprite = GameController.Instance.iconManager.GetIconById(currentIconId + "_Open", IconManager.IconTypes.Item); } EnableContainerMode(true); return; } // test bundles here.... // if bundle, we need to show the contents, but not remove it from the list, as it will be unpacked and added automatically if (selectedItem.Bundle != null && (selectedItem.Bundle.BundledItems != null || selectedItem.Bundle.BundledResultTables != null || selectedItem.Bundle.BundledVirtualCurrencies != null)) { var bundleItems = new List <ContainerResultItem>(); if (selectedItem.Bundle.BundledItems != null && selectedItem.Bundle.BundledItems.Count > 0) { foreach (var award in selectedItem.Bundle.BundledItems) { var catalogItem = PF_GameData.GetCatalogItemById(award); var awardIcon = PF_GameData.GetIconByItemById(award); bundleItems.Add(new ContainerResultItem { displayIcon = GameController.Instance.iconManager.GetIconById(awardIcon, IconManager.IconTypes.Item), displayName = catalogItem.DisplayName }); } } if (selectedItem.Bundle.BundledResultTables != null && selectedItem.Bundle.BundledResultTables.Count > 0) { foreach (var award in selectedItem.Bundle.BundledResultTables) { bundleItems.Add(new ContainerResultItem { displayIcon = GameController.Instance.iconManager.GetIconById("DropTable", IconManager.IconTypes.Misc), displayName = string.Format("Drop Table: {0}", award) }); } } if (selectedItem.Bundle.BundledVirtualCurrencies != null && selectedItem.Bundle.BundledVirtualCurrencies.Count > 0) { foreach (var award in selectedItem.Bundle.BundledVirtualCurrencies) { bundleItems.Add(new ContainerResultItem { displayIcon = GameController.Instance.iconManager.GetIconById(award.Key, IconManager.IconTypes.Item), displayName = string.Format("{1} Award: {0:n0}", award.Value, award.Key) }); } } if (bundleItems.Count > 0) { openedBoxes.Add(selectedIndex, bundleItems); EnableContainerMode(true); // dont fall through the rest of the logic. return; } } if (PF_GameData.IsContainer(selectedItem.ItemId)) { EnableContainerMode(); } else { DisableContainerMode(); } }