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(); }
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)); } }
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(); }
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(); }