Exemple #1
0
    //[SerializeField]
    //IVTweenPopUp popUpAnimation;

    void Start()
    {
        //testin statistics
        PlayfabUtils.Instance.GetPlayerStatistics(null, (res) =>
        {
            FMPlayfabUserStatistics.StoreItemsFromJson(res);
        }, OnError);
    }
    public void FilterResult(ExecuteCloudScriptResult result)
    {
        Bonuses.Clear();
        //Debug.Log(PlayFabSimpleJson.SerializeObject(result.FunctionResult));
        JSONNode jsonResult = JSON.Parse(result.FunctionResult.ToString());

        //Debug.Log(jsonResult);
        if ((jsonResult.Value.Equals("null") || result.Error != null))
        {
            //status = FMRewardStatus.error;
            return;
        }

        //get logi_count statistic
        logCountStatistic = FMPlayfabUserStatistics.GetStatisticProgress("login_count");

        RemainingHours = jsonResult["remainingHour"] == null ? 0 : jsonResult["remainingHour"].AsInt;
        int logCount = jsonResult["login_count"] == null ? logCountStatistic : jsonResult["login_count"].AsInt;;

        //if there's daily bonus
        string dailyRewardKey = jsonResult["daily_reward"];

        if (!string.IsNullOrEmpty(dailyRewardKey))
        {
            TodayReward = FMPlayfabReward.GetRewardFromKey(dailyRewardKey);
        }


        for (int i = 0; i < jsonResult["BonusResult"].AsArray.Count; i++)
        {
            string       rewardKey = jsonResult["BonusResult"].AsArray[i]["reward_key"];
            FMRewardItem reward    = FMPlayfabReward.GetRewardFromKey(rewardKey);

            FMLoginBonusState state;
            if (logCount > i)
            {
                state = FMLoginBonusState.Claimed;
            }
            else if (logCount == i)
            {
                state = FMLoginBonusState.Today;
            }
            else
            {
                state = FMLoginBonusState.Unclaimed;
            }
            Bonuses.Add(new FMLoginBonusItem(i, reward, state));
            //var ri = new FMRewardItem(rewardKey, rewardType, rewardValue, rewardValue);
            //ClaimedRewards.Add(ri);
        }
    }
Exemple #3
0
    public void UpdateData()
    {
        //update progress bar
        CurrentIndex   = FMPlayfabUserAchievement.Instance.GetUserAchievementFromKey(Key).CurrenIndex;
        amountRequired = Achievement.AmountRequired[CurrentIndex];
        int progress = FMPlayfabUserStatistics.GetStatisticProgress(Achievement.Statistic);

        progress = Mathf.Clamp(progress, 0, amountRequired);
        ProgressBar.gameObject.SetActive(true);
        ProgressBar.value = (float)progress / (float)amountRequired;
        labProgress.text  = +progress + " / " + amountRequired;
        ProgressBar.gameObject.SetActive(false);

        //update levels
        FMUserAchievement uachv = FMPlayfabUserAchievement.Instance.GetUserAchievementFromKey(Key);

        States = uachv.States;
        for (int i = 0; i < uachv.States.Length; i++)
        {
            UISprite levelSprite = levelGrid.GetChildList()[i].gameObject.GetComponent <UISprite>();
            levelSprite.color = States[i] == FMAchievementState.Claimed ? colorAchievedLv : colorUnAchievedLv;
        }
        levelGrid.Reposition();

        //if we got a new reward
        if (progress >= Achievement.AmountRequired[CurrentIndex])
        {
            buttonReward.isEnabled    = true;
            buttonReward.state        = UIButtonColor.State.Normal;
            buttonReward.defaultColor = new Color32(188, 179, 84, 255);
            ProgressBar.gameObject.SetActive(false);
            buttonReward.GetComponentInChildren <UILabel>().text = "Get Reward";
        }

        //if it's not enough, display progress bar
        else if (States[CurrentIndex] == FMAchievementState.Locked ||
                 (States[CurrentIndex] == FMAchievementState.Claimed && CurrentIndex < States.Length))
        {
            buttonReward.isEnabled     = false;
            buttonReward.disabledColor = new Color32(125, 134, 135, 255);
            ProgressBar.gameObject.SetActive(true);
        }

        //if it's the last one, set as claimed
        if (uachv.States[uachv.States.Length - 1] == FMAchievementState.Claimed)
        {
            SetRewardAsClaimed();
        }
    }
Exemple #4
0
    void OnLoginSuccess(LoginResult res)
    {
        //get display name
        PlayFabClientAPI.GetAccountInfo(new GetAccountInfoRequest()
        {
            PlayFabId = res.PlayFabId
        }, result =>
        {
            ClientSessionData.Instance.UserName = result.AccountInfo.TitleInfo.DisplayName;
            labUser.text = result.AccountInfo.TitleInfo.DisplayName;
        }, error => { Debug.Log("error on get account info"); });

        //get currency
        PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), resInventory =>
        {
            int CO = 0;
            int PC = 0;
            resInventory.VirtualCurrency.TryGetValue("CO", out CO);
            resInventory.VirtualCurrency.TryGetValue("PC", out PC);
            labCurrencyCO.text = CO.ToString();
            labCurrencyPC.text = PC.ToString();
            ClientSessionData.Instance.currencyCO = CO;
            ClientSessionData.Instance.currencyPC = PC;
        }
                                          , error => { Debug.Log("error on get currency info"); });

        //statistics
        PlayfabUtils.Instance.GetPlayerStatistics(null, statRes => {
            FMPlayfabUserStatistics.StoreItemsFromJson(statRes);
            ClientSessionData.Instance.Statistics = FMPlayfabUserStatistics.Items;
        }, error => { Debug.Log("error on getting statistics"); });

        //getting reward and achievement list
        PlayfabUtils.Instance.GetTitleData(new List <string> {
            "fm_achievements", "fm_rewards"
        }, titleRes => {
            FMPlayfabAchievements.Instance.StoreItemsFromJson(titleRes);
            FMPlayfabReward.StoreItemsFromJson(titleRes);

            ClientSessionData.Instance.Achievements = FMPlayfabAchievements.Items;
            ClientSessionData.Instance.Rewads       = FMPlayfabReward.Items;
            Debug.Log("got achievments " + ClientSessionData.Instance.Achievements.Count);
            Debug.Log("got rewards " + ClientSessionData.Instance.Rewads.Count);

            //LOGIN BONUS
            FMPlayfabLoginBonus.Instance.CheckLoginBonus();
        }, error => { Debug.Log("error on get title info"); });

        //get catalogItems
        PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), catalogRes =>
        {
            ClientSessionData.Instance.CatalogItems = catalogRes.Catalog;
            //DisplayUserItems(catalogRes.Catalog);
            Debug.Log("got catalog" + ClientSessionData.Instance.CatalogItems.Count);
        }
                                         , error => { Debug.Log("error on get catalog info"); });

        //get user Achievement
        //PlayfabUtils.Instance.GetUserReadOnlyData(new List<string> { "fm_user_achievements" }, result =>{
        //    FMPlayfabUserAchievement.Instance.StoreItemsFromJson(result);
        //    ClientSessionData.Instance.UserAchievements = FMPlayfabUserAchievement.Items;
        //    Debug.Log("got user achivements " + ClientSessionData.Instance.UserAchievements.Count);
        //}, error => { Debug.Log("error on getting read only data"); });
        //var request = new GetUserDataRequest()
        //{
        //    Keys = new List<string>() { "fm_user_achievements"}
        //};
        //PlayFabClientAPI.GetUserReadOnlyData(request, result =>
        //{
        //    Debug.Log("los achievements " + result.ToJson().ToString());
        //    //ClientSessionData.Instance.UserAchievements =
        //}, OnLoginFailure);
    }
Exemple #5
0
    /// <summary>
    /// nesting so many callbacks is not that good practice, but for the sake of
    /// keeping it sinchronous, we'll do it just this one time
    /// </summary>
    /// <param name="logResult"></param>
    void OnLoginSuccess(LoginResult logResult)
    {
        List <ItemInstance> inventoryItems = new List <ItemInstance>();

        //get display name
        PlayFabClientAPI.GetAccountInfo(new GetAccountInfoRequest()
        {
            PlayFabId = logResult.PlayFabId
        }, result =>
        {
            ClientSessionData.Instance.PlayfabID = logResult.PlayFabId;
            ClientSessionData.Instance.UserName  = result.AccountInfo.TitleInfo.DisplayName;
            labLoading.text = "... Loading user info ...";
            progress       += 0.20f;
            total          += progress;

            //get currency
            PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), resInventory =>
            {
                //currency
                int CO = 0;
                int PC = 0;
                resInventory.VirtualCurrency.TryGetValue("CO", out CO);
                resInventory.VirtualCurrency.TryGetValue("PC", out PC);
                ClientSessionData.Instance.currencyCO = CO;
                ClientSessionData.Instance.currencyPC = PC;

                //inventory
                inventoryItems  = resInventory.Inventory;
                labLoading.text = "... Loading Inventory ...";
                progress       += 0.20f;
                //total += progress;

                //statistics
                PlayfabUtils.Instance.GetPlayerStatistics(null, statRes =>
                {
                    FMPlayfabUserStatistics.StoreItemsFromJson(statRes);
                    ClientSessionData.Instance.Statistics = FMPlayfabUserStatistics.Items;
                    labLoading.text = "... Loading User Statistics ...";
                    progress       += 0.20f;
                    total          += progress;

                    //get title Data
                    PlayfabUtils.Instance.GetTitleData(new List <string> {
                        "fm_achievements", "fm_rewards"
                    }, titleRes =>
                    {
                        FMPlayfabAchievements.Instance.StoreItemsFromJson(titleRes);
                        FMPlayfabReward.StoreItemsFromJson(titleRes);

                        ClientSessionData.Instance.Achievements = FMPlayfabAchievements.Items;
                        ClientSessionData.Instance.Rewads       = FMPlayfabReward.Items;

                        labLoading.text = "... Loading Title Data ...";
                        progress       += 0.20f;
                        total          += progress;

                        //get catalogItems
                        PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), catalogRes =>
                        {
                            ClientSessionData.Instance.CatalogItems = catalogRes.Catalog;

                            //crossing CatalogItem and ItemInstance items
                            FMPlayFabInventory.StoreItemsFromPlayfab(catalogRes.Catalog, inventoryItems);
                            ClientSessionData.Instance.InventoryItems = FMPlayFabInventory.Items;

                            //TODO cross catalog and instance items;
                            labLoading.text = "... Loading Catalog Items ...";
                            progress       += 0.20f;
                            total          += progress;
                        }
                                                         , error => { Debug.Log("error on get catalog info"); });
                        //end catalog
                    }, error => { Debug.Log("error on get title info"); });
                    //end get title
                }, error => { Debug.Log("error on getting statistics"); });
                //end get Statistics
            }
                                              , error => { Debug.Log("error on get currency info"); });
            //end get currency
        }, error => { Debug.Log("error on get account info"); });
        //end get account info
    }