public static void SetPrivateGameState(String gameState)
        {
            UserDataManager.UpdateUserDataVersions();
            UserDataManager.UpdateUserDataMeta();

            SpilEvent spilEvent = Spil.MonoInstance.gameObject.AddComponent <SpilEvent>();

            spilEvent.eventName = "updateGameState";

            if (gameState.Contains("\""))
            {
                gameState = gameState.Replace("\"", "\\\"").Replace("\\\\", "\\");
            }

            PrivateGameStateData = gameState;

            JSONObject gameStateJSONArray = new JSONObject(JSONObject.Type.ARRAY);
            JSONObject gameStateJSON      = new JSONObject();

            gameStateJSON.AddField("data", gameState);
            gameStateJSON.AddField("access", "private");
            gameStateJSONArray.Add(gameStateJSON);

            spilEvent.customData.AddField("gameStates", gameStateJSONArray);
            spilEvent.customData.AddField("deviceVersions", UserDataManager.GenerateUserDataVersionsJSON(UserDataManager.userDataVersions));

            spilEvent.Send();
        }
예제 #2
0
        public void SendUpdatePlayerDataEvent()
        {
            SpilEvent spilEvent = Spil.MonoInstance.gameObject.AddComponent <SpilEvent>();

            spilEvent.eventName = "updatePlayerData";

            JSONObject walletObject = new JSONObject();

            walletObject.AddField("offset", Wallet.offset);

            spilEvent.customData.AddField("wallet", walletObject);

            JSONObject inventoryObject = new JSONObject();

            inventoryObject.AddField("offset", Inventory.offset);

            spilEvent.customData.AddField("inventory", inventoryObject);

            spilEvent.customData.AddField("deviceVersions", UserDataManager.GenerateUserDataVersionsJSON(UserDataManager.userDataVersions));

            spilEvent.Send();
        }
        public static void SetPublicGameState(String gameState)
        {
            if (Response.externalId != null && Response.provider != null)
            {
                UserDataManager.UpdateUserDataVersions();
                UserDataManager.UpdateUserDataMeta();

                SpilEvent spilEvent = Spil.MonoInstance.gameObject.AddComponent <SpilEvent>();
                spilEvent.eventName = "updateGameState";

                if (gameState.Contains("\""))
                {
                    gameState = gameState.Replace("\"", "\\\"").Replace("\\\\", "\\");
                }

                PublicGameStateData = gameState;

                JSONObject gameStateJSONArray = new JSONObject(JSONObject.Type.ARRAY);
                JSONObject gameStateJSON      = new JSONObject();

                gameStateJSON.AddField("data", gameState);
                gameStateJSON.AddField("access", "public");
                gameStateJSONArray.Add(gameStateJSON);

                spilEvent.customData.AddField("gameStates", gameStateJSONArray);
                spilEvent.customData.AddField("deviceVersions", UserDataManager.GenerateUserDataVersionsJSON(UserDataManager.userDataVersions));

                spilEvent.Send();
            }
            else
            {
                SpilErrorMessage error = new SpilErrorMessage();
                error.id      = 12;
                error.name    = "UserIdMissing";
                error.message =
                    "Error adding public game state data! A custom user id must be set in order to save public game state data";
                SpilUnityImplementationBase.fireUserDataError(JsonUtility.ToJson(error));
            }
        }
예제 #4
0
        public void SendUpdatePlayerDataEvent(SpilBundleData bundle, string reason, string reasonDetails, string location, string transactionId)
        {
            SpilEvent spilEvent = Spil.MonoInstance.gameObject.AddComponent <SpilEvent>();

            spilEvent.eventName = "updatePlayerData";

            JSONObject walletObject = new JSONObject();
            List <PlayerCurrencyData> currencyList = new List <PlayerCurrencyData>();

            foreach (PlayerCurrencyData currencyData in Wallet.currencies)
            {
                if (currencyData.delta != 0)
                {
                    currencyList.Add(currencyData);
                }
            }

            if (currencyList.Count > 0)
            {
                JSONObject currenciesJSON = new JSONObject();
                foreach (PlayerCurrencyData currencyData in currencyList)
                {
                    JSONObject obj = new JSONObject();
                    obj.AddField("id", currencyData.id);
                    obj.AddField("currentBalance", currencyData.currentBalance);
                    obj.AddField("delta", currencyData.delta);

                    currenciesJSON.Add(obj);
                }

                walletObject.AddField("currencies", currenciesJSON);

                walletObject.AddField("offset", Wallet.offset);

                spilEvent.customData.AddField("wallet", walletObject);

                foreach (PlayerCurrencyData currencyData in Wallet.currencies)
                {
                    currencyData.delta = 0;
                    UpdateCurrency(currencyData);
                }
            }

            JSONObject            inventoryObject = new JSONObject();
            List <PlayerItemData> itemsList       = new List <PlayerItemData>();

            foreach (PlayerItemData playerItemData in Inventory.items)
            {
                if (playerItemData.delta != 0)
                {
                    itemsList.Add(playerItemData);
                }
            }

            if (itemsList.Count > 0)
            {
                JSONObject itemsJSON = new JSONObject(JSONObject.Type.ARRAY);

                foreach (PlayerItemData playerItemData in itemsList)
                {
                    JSONObject obj = new JSONObject();
                    obj.AddField("id", playerItemData.id);
                    obj.AddField("amount", playerItemData.amount);
                    obj.AddField("delta", playerItemData.delta);

                    itemsJSON.Add(obj);
                }

                inventoryObject.AddField("items", itemsJSON);

                inventoryObject.AddField("offset", Inventory.offset);

                spilEvent.customData.AddField("inventory", inventoryObject);

                foreach (PlayerItemData playerItemData in Inventory.items)
                {
                    playerItemData.delta = 0;
                    UpdateItem(playerItemData);
                }
            }

            if (bundle != null)
            {
                spilEvent.customData.AddField("bundle", new JSONObject(JsonHelper.getJSONFromObject(bundle)));
            }

            spilEvent.customData.AddField("reason", reason);

            if (reasonDetails != null)
            {
                spilEvent.customData.AddField("reasonDetails", reasonDetails);
            }

            if (location != null)
            {
                spilEvent.customData.AddField("location", location);
            }

            if (transactionId != null)
            {
                spilEvent.customData.AddField("transactionId", transactionId);
            }

            spilEvent.customData.AddField("deviceVersions", UserDataManager.GenerateUserDataVersionsJSON(UserDataManager.userDataVersions));

            spilEvent.Send();
        }
예제 #5
0
        public void SendUpdatePlayerDataEvent(bool resetWallet, bool resetInventory, string reason)
        {
            if (resetWallet)
            {
                foreach (PlayerCurrencyData currency in Wallet.currencies)
                {
                    int newDelta = currency.initialValue - currency.currentBalance;

                    currency.currentBalance = currency.initialValue;
                    currency.delta          = newDelta + currency.delta;

                    UpdateCurrency(currency);
                }
            }

            if (resetInventory)
            {
                foreach (PlayerItemData item in Inventory.items)
                {
                    int newDelta = item.initialValue - item.amount;

                    item.amount = item.initialValue;
                    item.delta  = newDelta + item.delta;

                    UpdateItem(item);
                }
            }

            SpilEvent spilEvent = Spil.MonoInstance.gameObject.AddComponent <SpilEvent>();

            spilEvent.eventName = "updatePlayerData";

            JSONObject walletObject = new JSONObject();

            JSONObject currenciesJSON = new JSONObject(JSONObject.Type.ARRAY);

            foreach (PlayerCurrencyData currencyData in Wallet.currencies)
            {
                JSONObject obj = new JSONObject();
                obj.AddField("id", currencyData.id);
                obj.AddField("currentBalance", currencyData.currentBalance);
                obj.AddField("delta", currencyData.delta);

                currenciesJSON.Add(obj);
            }

            walletObject.AddField("currencies", currenciesJSON);
            walletObject.AddField("offset", Wallet.offset);

            spilEvent.customData.AddField("wallet", walletObject);

            JSONObject inventoryObject = new JSONObject();

            JSONObject itemsJSON = new JSONObject(JSONObject.Type.ARRAY);

            foreach (PlayerItemData playerItemData in Inventory.items)
            {
                JSONObject obj = new JSONObject();
                obj.AddField("id", playerItemData.id);
                obj.AddField("amount", playerItemData.amount);
                obj.AddField("delta", playerItemData.delta);

                itemsJSON.Add(obj);
            }

            inventoryObject.AddField("items", itemsJSON);
            inventoryObject.AddField("offset", Inventory.offset);

            spilEvent.customData.AddField("inventory", inventoryObject);

            spilEvent.customData.AddField("reason", reason);

            spilEvent.customData.AddField("deviceVersions", UserDataManager.GenerateUserDataVersionsJSON(UserDataManager.userDataVersions));

            spilEvent.Send();
        }