Example #1
0
        public static void GetTitleData()
        {
            var getRequest = new ClientModels.GetTitleDataRequest();

            // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey };
            PlayFabClientAPI.GetTitleData(getRequest, GetTitleDataCallback, PfSharedControllerEx.FailCallback("GetTitleData"));
        }
Example #2
0
 public static void PurchaseUserItem(string itemId, uint qty)
 {
     if (qty == 1)
     {
         string vcKey;
         int    cost;
         if (PfSharedModelEx.globalClientUser.GetClientItemPrice(null, itemId, out vcKey, out cost))
         {
             var purchaseRequest = new PurchaseItemRequest();
             purchaseRequest.ItemId          = itemId;
             purchaseRequest.VirtualCurrency = vcKey;
             purchaseRequest.Price           = cost;
             PlayFabClientAPI.PurchaseItem(purchaseRequest, PurchaseUserItemCallback, PfSharedControllerEx.FailCallback("PurchaseItem"));
         }
         else
         {
             Debug.LogWarning("You cannot afford this item");
         }
     }
     else
     {
         var multiRequest = new StartPurchaseRequest();
         multiRequest.Items = new List <ItemPurchaseRequest>();
         multiRequest.Items.Add(new ItemPurchaseRequest {
             ItemId = itemId, Quantity = qty
         });
         PlayFabClientAPI.StartPurchase(multiRequest, StartPurchaseCallback, PfSharedControllerEx.FailCallback("StartPurchase"));
     }
 }
Example #3
0
        private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            var catalogRequest = new ServerModels.GetCatalogItemsRequest();

            PlayFabServerAPI.GetCatalogItems(catalogRequest, GetCatalogCallback, PfSharedControllerEx.FailCallback("GetCatalogItems"));
            GetUserInventory(playFabId);
        }
 private static void OnVcChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     if (characterId == null) // Reload the user inventory
         GetUserVc();
     else // Reload the character inventory
         GetCharacterVc(characterId);
 }
Example #5
0
        public static void CancelTrade(string tradeId)
        {
            var cancelRequest = new ClientModels.CancelTradeRequest();

            cancelRequest.TradeId = tradeId;
            PlayFabClientAPI.CancelTrade(cancelRequest, CancelTradeCallback, PfSharedControllerEx.FailCallback("CancelTrade"));
        }
Example #6
0
 private static void ConfirmPurchaseCallback(ConfirmPurchaseResult result)
 {
     // TODO: This may not have ideal results with stacks...
     PfSharedModelEx.globalClientUser.clientUserItems.AddRange(result.Items);
     PfSharedModelEx.globalClientUser.UpdateInvDisplay(PfSharedControllerEx.Api.Client);
     PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client, false);
 }
Example #7
0
        public static void UnlockUserContainerCallback(UnlockContainerItemResult unlockResult)
        {
            string characterId = ((UnlockContainerItemRequest)unlockResult.Request).CharacterId;

            PfSharedModelEx.globalClientUser.clientUserItems.AddRange(unlockResult.GrantedItems);
            var unlockedItem = PfSharedModelEx.globalClientUser.GetClientItem(characterId, unlockResult.UnlockedItemInstanceId);

            if (unlockedItem != null && unlockedItem.RemainingUses > 0)
            {
                unlockedItem.RemainingUses -= 1;
                if (unlockedItem.RemainingUses <= 0)
                {
                    PfSharedModelEx.globalClientUser.RemoveItems(characterId, new HashSet <string>()
                    {
                        unlockResult.UnlockedItemInstanceId
                    });
                }
            }

            PfSharedModelEx.globalClientUser.UpdateInvDisplay(PfSharedControllerEx.Api.Client);
            bool needsFullRefresh = (unlockedItem == null); // If we couldn't find our unlocked item, we're stuck and we need a full refresh

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, characterId, PfSharedControllerEx.Api.Client, needsFullRefresh);
            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnVcChanged, PfSharedModelEx.globalClientUser.playFabId, characterId, PfSharedControllerEx.Api.Client, true); // unlockResult contains no information about potential currency we may have gained
        }
Example #8
0
        public static void GetUserVc(string playFabId)
        {
            var getRequest = new ServerModels.GetUserInventoryRequest();

            getRequest.PlayFabId = playFabId;
            PlayFabServerAPI.GetUserInventory(getRequest, GetUserVcCallback, PfSharedControllerEx.FailCallback("GetUserInventory"));
        }
Example #9
0
        public void MoveToUserCallback(ServerModels.MoveItemToUserFromCharacterResult moveResult)
        {
            string playFabId           = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).PlayFabId;
            string characterId         = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).CharacterId;
            string movedItemInstanceId = ((ServerModels.MoveItemToUserFromCharacterRequest)moveResult.Request).ItemInstanceId;

            bool            requiresRefresh = true;
            UserModel       userModel;
            CharacterModel  tempModel;
            PfInvServerChar characterModel;

            if (PfSharedModelEx.serverUsers.TryGetValue(playFabId, out userModel) && userModel.serverCharacterModels.TryGetValue(characterId, out tempModel))
            {
                characterModel = tempModel as PfInvServerChar;
                var movedItem = userModel.GetServerItem(characterId, movedItemInstanceId);
                if (movedItem != null)
                {
                    userModel.RemoveItems(characterId, new HashSet <string>()
                    {
                        movedItemInstanceId
                    });
                    userModel.serverUserItems.Add(movedItem);
                    requiresRefresh = false;
                }
                userModel.UpdateInvDisplay(PfSharedControllerEx.Api.Server);
                characterModel.UpdateInvDisplay();
            }

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, null, PfSharedControllerEx.Api.Server, requiresRefresh);
            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, characterId, PfSharedControllerEx.Api.Server, requiresRefresh);
        }
Example #10
0
 private static void OnCatalogLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     // Find the designated trade target item
     foreach (var catalogPair in PfSharedModelEx.clientCatalog)
         if (catalogPair.Value.DisplayName.ToLower().Contains(PfSharedModelEx.SWILL_NAME.ToLower()))
             PfSharedModelEx.swillItemId = catalogPair.Key;
 }
Example #11
0
        public void GetInventory()
        {
            var getRequest = new GetCharacterInventoryRequest();

            getRequest.CharacterId = characterId;
            PlayFabClientAPI.GetCharacterInventory(getRequest, GetInventoryCallback, PfSharedControllerEx.FailCallback("GetCharacterInventory"));
        }
Example #12
0
        private static void OnInventoryChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            UserModel updatedUser;
            CharacterModel tempCharacter;
            if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser))
                return;

            if (characterId == null)
            {
                // Reload the user inventory
                GetUserInventory(playFabId)();
            }
            else
            {
                // Reload the character inventory
                if (updatedUser.characterIds.IndexOf(characterId) == -1 || !updatedUser.serverCharacterModels.TryGetValue(characterId, out tempCharacter))
                    return;

                PfInvServerChar eachCharacter = tempCharacter as PfInvServerChar;
                if (eachCharacter == null || eachCharacter.inventory == null)
                    return;

                eachCharacter.GetInventory();
            }
        }
Example #13
0
        public static void GetPublisherData()
        {
            var getRequest = new ClientModels.GetPublisherDataRequest();

            getRequest.Keys = PfSharedModelEx.defaultPublisherKeys; // TODO: Temporary - keys are mandatory, and we don't know what keys already exist.
            PlayFabClientAPI.GetPublisherData(getRequest, GetPublisherDataCallback, PfSharedControllerEx.FailCallback("GetPublisherData"));
        }
Example #14
0
        public void GetInventory()
        {
            var getRequest = new ServerModels.GetCharacterInventoryRequest();

            getRequest.PlayFabId   = playFabId;
            getRequest.CharacterId = characterId;
            PlayFabServerAPI.GetCharacterInventory(getRequest, GetInventoryCallback, PfSharedControllerEx.FailCallback("GetCharacterInventory"));
        }
Example #15
0
 private static void GetUserReadOnlyDataCallback(ClientModels.GetUserDataResult result)
 {
     foreach (var eachDataEntry in result.Data)
     {
         PfSharedModelEx.globalClientUser.userReadOnlyData[eachDataEntry.Key] = eachDataEntry.Value.Value;
     }
     PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserDataLoaded, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false);
 }
Example #16
0
        public static void GetUserReadOnlyData()
        {
            var getRequest = new ClientModels.GetUserDataRequest();

            getRequest.PlayFabId = PfSharedModelEx.globalClientUser.playFabId; // You may ask for yourself specifically, any other playFabId you're aware of, or null to default to yourself
            // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey };
            PlayFabClientAPI.GetUserReadOnlyData(getRequest, GetUserDataCallback, PfSharedControllerEx.FailCallback("GetUserReadOnlyData"));
        }
Example #17
0
 private static void GetInternalTitleDataCallback(ServerModels.GetTitleDataResult result)
 {
     foreach (var eachTitleEntry in result.Data)
     {
         PfSharedModelEx.titleInternalData[eachTitleEntry.Key] = eachTitleEntry.Value;
     }
     PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnTitleDataLoaded, null, null, PfSharedControllerEx.Api.Server, false);
 }
Example #18
0
 private static void GetPublisherDataCallback(ClientModels.GetPublisherDataResult result)
 {
     foreach (var eachPublisherEntry in result.Data)
     {
         PfSharedModelEx.publisherData[eachPublisherEntry.Key] = eachPublisherEntry.Value;
     }
     PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnTitleDataLoaded, null, null, PfSharedControllerEx.Api.Client, false);
 }
Example #19
0
        public static void GetUserStatistics(string playFabId)
        {
            var request = new GetUserStatisticsRequest();

            request.PlayFabId = playFabId;
            PlayFabServerAPI.GetUserStatistics(request, GetUserStatisticsCallback,
                                               PfSharedControllerEx.FailCallback("GetUserStatistics"));
        }
Example #20
0
        private static void AcceptTradeCallback(ClientModels.AcceptTradeResponse result)
        {
            Debug.Log("Existing trade completed: " + result.Trade.TradeId);

            PfSharedModelEx.globalClientUser.RemoveTrade(result.Trade.TradeId);

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client, true);
        }
Example #21
0
        public void ConsumeItem(string itemInstanceId)
        {
            var consumeRequest = new ConsumeItemRequest();

            consumeRequest.ConsumeCount   = 1;
            consumeRequest.CharacterId    = characterId;
            consumeRequest.ItemInstanceId = itemInstanceId;
            PlayFabClientAPI.ConsumeItem(consumeRequest, ConsumeItemCallback, PfSharedControllerEx.FailCallback("ConsumeItem"));
        }
Example #22
0
        public static void AcceptTrade(string tradeId, string offeringPlayerId, List <string> acceptedInventoryInstanceIds)
        {
            var acceptRequest = new ClientModels.AcceptTradeRequest();

            acceptRequest.TradeId                      = tradeId;
            acceptRequest.OfferingPlayerId             = offeringPlayerId;
            acceptRequest.AcceptedInventoryInstanceIds = acceptedInventoryInstanceIds;
            PlayFabClientAPI.AcceptTrade(acceptRequest, AcceptTradeCallback, PfSharedControllerEx.FailCallback("CancelTrade"));
        }
Example #23
0
        public static void ConsumeUserItem(string itemInstanceId)
        {
            var consumeRequest = new ConsumeItemRequest();

            consumeRequest.ConsumeCount   = 1;
            consumeRequest.CharacterId    = null; // To indicate user inventory
            consumeRequest.ItemInstanceId = itemInstanceId;
            PlayFabClientAPI.ConsumeItem(consumeRequest, ConsumeItemCallback, PfSharedControllerEx.FailCallback("ConsumeItem"));
        }
Example #24
0
        public void RevokeItem(string itemInstanceId)
        {
            var revokeRequest = new AdminModels.RevokeInventoryItemRequest();

            revokeRequest.PlayFabId      = playFabId;
            revokeRequest.CharacterId    = characterId;
            revokeRequest.ItemInstanceId = itemInstanceId;
            PlayFabAdminAPI.RevokeInventoryItem(revokeRequest, RevokeItemCallback, PfSharedControllerEx.FailCallback("RevokeInventoryItem"));
        }
Example #25
0
        public static void GetUserData(string playFabId)
        {
            var getRequest = new ServerModels.GetUserDataRequest();

            getRequest.PlayFabId = playFabId;
            // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey };
            PlayFabServerAPI.GetUserData(getRequest, GetUserDataCallback,
                                         PfSharedControllerEx.FailCallback("GetUserData"));
        }
        private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            UserModel updatedUser;
            if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser))
                return;

            for (int i = 0; i < updatedUser.characterIds.Count; i++)
                GetCharacterVc(playFabId, updatedUser.characterIds[i])();
        }
Example #27
0
        public void GrantCharacterItemCallback(ServerModels.GrantItemsToCharacterResult grantResult)
        {
            // Merge the items we received with the items we know we have
            //UserModel userModel;
            //if (PfSharedModelEx.serverUsers.TryGetValue(playFabId, out userModel))
            //    userModel.serverUserItems.AddRange(grantResult.ItemGrantResults); // TODO: Type mismatch makes this too complicated for now

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, playFabId, characterId, PfSharedControllerEx.Api.Server, true);
        }
Example #28
0
        private static void GetInternalUserDataCallback(ServerModels.GetUserDataResult result)
        {
            string playFabId = result.PlayFabId;

            foreach (var eachUserEntry in result.Data)
            {
                PfSharedModelEx.serverUsers[playFabId].userInternalData[eachUserEntry.Key] = eachUserEntry.Value.Value;
            }
            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserDataLoaded, null, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false);
        }
Example #29
0
        public static void LoginWithEmail(string titleId, string devSecretKey, string email, string password)
        {
            PlayFabSettings.TitleId            = titleId;
            PlayFabSettings.DeveloperSecretKey = devSecretKey;
            var loginRequest = new LoginWithEmailAddressRequest();

            loginRequest.Email    = email;
            loginRequest.Password = password;
            PlayFabClientAPI.LoginWithEmailAddress(loginRequest, LoginCallBack, PfSharedControllerEx.FailCallback("LoginWithEmailAddress"));
        }
Example #30
0
 private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     GetUserInventory();
     PfSharedModelEx.globalClientUser.clientCharacterModels.Clear();
     for (int i = 0; i < PfSharedModelEx.globalClientUser.characterIds.Count; i++)
     {
         var newInv = new PfInvClientChar(PfSharedModelEx.globalClientUser.playFabId, PfSharedModelEx.globalClientUser.characterIds[i], PfSharedModelEx.globalClientUser.characterNames[i]);
         PfSharedModelEx.globalClientUser.clientCharacterModels[PfSharedModelEx.globalClientUser.characterIds[i]] = newInv;
     }
 }
Example #31
0
        private static void OpenTradeCallback(ClientModels.OpenTradeResponse result)
        {
            // At this point, the tradeId needs to be shared via some mechanism, such as photon, a game server, shared-group-data, or external implementation
            //   Since we fulfill this trade with ourselves, that step is somewhat automatic in this example
            Debug.Log("New trade opened: " + result.Trade.TradeId);

            PfSharedModelEx.globalClientUser.RemoveItems(null, new HashSet <string>(result.Trade.OfferedInventoryInstanceIds));
            PfSharedModelEx.globalClientUser.openTrades.Add(result.Trade);

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnInventoryChanged, PfSharedModelEx.globalClientUser.playFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false);
        }
Example #32
0
        private static void ModifyUserVcCallback(ServerModels.ModifyUserVirtualCurrencyResult modifyResult)
        {
            UserModel userModel;

            if (PfSharedModelEx.serverUsers.TryGetValue(modifyResult.PlayFabId, out userModel))
            {
                userModel.SetVcBalance(null, modifyResult.VirtualCurrency, modifyResult.Balance);
            }

            PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnVcChanged, modifyResult.PlayFabId, null, PfSharedControllerEx.Api.Client | PfSharedControllerEx.Api.Server, false);
        }
Example #33
0
        public static void GrantUserItem(string playFabId, string itemId)
        {
            var grantRequest = new ServerModels.GrantItemsToUserRequest();

            grantRequest.PlayFabId = playFabId;
            grantRequest.ItemIds   = new List <string>()
            {
                itemId
            };
            PlayFabServerAPI.GrantItemsToUser(grantRequest, GrantUserItemCallback, PfSharedControllerEx.FailCallback("GrantItemsToUser"));
        }
Example #34
0
        public static void UpdateUserData(string userDataKey, string userDataValue)
        {
            if (string.IsNullOrEmpty(userDataValue))
            {
                userDataValue = null; // Ensure that this field is removed
            }
            var updateRequest = new ClientModels.UpdateUserDataRequest();

            updateRequest.Data = new Dictionary <string, string>();
            updateRequest.Data[userDataKey] = userDataValue; // Multiple keys accepted, unlike this example, best-use-case modifies all keys at once when possible.

            PlayFabClientAPI.UpdateUserData(updateRequest, UpdateUserDataCallback, PfSharedControllerEx.FailCallback("UpdateUserData"));
        }
Example #35
0
        private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            UserModel updatedUser;
            if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser))
                return;

            updatedUser.serverCharacterModels.Clear();
            for (int i = 0; i < updatedUser.characterIds.Count; i++)
            {
                var newCharInv = new PfInvServerChar(playFabId, updatedUser.characterIds[i], updatedUser.characterNames[i]);
                updatedUser.serverCharacterModels[updatedUser.characterIds[i]] = newCharInv;
            }
        }
Example #36
0
        public static void ClientCharCallBack(ListUsersCharactersResult charResult)
        {
            CharacterModel temp;

            foreach (var character in charResult.Characters)
            {
                if (!PfSharedModelEx.globalClientUser.clientCharacterModels.TryGetValue(character.CharacterId, out temp))
                {
                    PfSharedModelEx.globalClientUser.clientCharacterModels[character.CharacterId] = new PfInvClientChar(PfSharedModelEx.globalClientUser.playFabId, character.CharacterId, character.CharacterName);
                }
                PfSharedControllerEx.PostEventMessage(PfSharedControllerEx.EventType.OnUserCharactersLoaded, PfSharedModelEx.globalClientUser.playFabId, character.CharacterId, PfSharedControllerEx.Api.Client, false);
            }
        }
        private static void OnVcChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            UserModel updatedUser;
            if (!PfSharedModelEx.serverUsers.TryGetValue(playFabId, out updatedUser))
                return;

            if (characterId == null)
                // Reload the user VC
                GetUserVc(playFabId)();
            else if (updatedUser.characterIds.IndexOf(characterId) != -1)
                // Reload the character VC
                GetCharacterVc(playFabId, characterId)();
        }
Example #38
0
        private static void OnInventoryChanged(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            if (characterId == null)
            {
                // Reload the user inventory
                GetUserInventory();
            }
            else
            {
                // Reload the character inventory
                CharacterModel tempCharacter;
                if (!PfSharedModelEx.globalClientUser.clientCharacterModels.TryGetValue(characterId, out tempCharacter))
                    return;
                PfInvClientChar eachCharacter = tempCharacter as PfInvClientChar;
                if (eachCharacter == null || eachCharacter.inventory == null)
                    return;

                eachCharacter.GetInventory();
            }
        }
Example #39
0
 private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     GetUserData();
     GetUserReadOnlyData();
 }
 private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     if (eventSourceApi == PfSharedControllerEx.Api.Client)
         GetCharacterVc(characterId);
 }
        // The static constructor is called as a by-product of this call  }

        private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
        {
            // Reload the user VC
            GetUserVc(playFabId)();
        }
 private static void OnUserCharactersLoaded(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     for (int i = 0; i < PfSharedModelEx.globalClientUser.characterIds.Count; i++)
         GetCharacterVc(PfSharedModelEx.globalClientUser.characterIds[i])();
 }
Example #43
0
 private static void OnUserLogin(string playFabId, string characterId, PfSharedControllerEx.Api eventSourceApi, bool requiresFullRefresh)
 {
     var catalogRequest = new ServerModels.GetCatalogItemsRequest();
     PlayFabServerAPI.GetCatalogItems(catalogRequest, GetCatalogCallback, PfSharedControllerEx.FailCallback("GetCatalogItems"));
     GetUserInventory(playFabId)();
 }