public void SaveStatistics() { var prefix = PF_GamePlay.ActiveQuest.levelData.StatsPrefix; var charUpdates = new Dictionary <string, int>(); var damageDone = 0; var bossesKilled = 0; foreach (var item in PF_GamePlay.QuestProgress.CompletedEncounters) { if (item.Data.EncounterType == EncounterTypes.BossCreep) { bossesKilled++; } if (item.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP)) { damageDone += item.Data.Vitals.MaxHealth; } } // Character Statistics Section charUpdates.Add(prefix + "Complete", PF_GamePlay.ActiveQuest.difficulty); charUpdates.Add(prefix + "Deaths", PF_GamePlay.QuestProgress.Deaths); charUpdates.Add(prefix + "DamageDone", damageDone); charUpdates.Add(prefix + "EncountersCompleted", PF_GamePlay.QuestProgress.CompletedEncounters.Count); charUpdates.Add(prefix + "UnicornsRescued", PF_GamePlay.QuestProgress.HeroRescues); charUpdates.Add(prefix + "ItemsUsed", PF_GamePlay.QuestProgress.ItemsUsed); charUpdates.Add(prefix + "XPGained", PF_GamePlay.QuestProgress.XpCollected); charUpdates.Add(prefix + "ItemsFound", PF_GamePlay.QuestProgress.ItemsFound.Count); charUpdates.Add(prefix + "GoldFound", PF_GamePlay.QuestProgress.GoldCollected); charUpdates.Add("QuestsCompleted", 1); charUpdates.Add("BossesKilled", bossesKilled); PF_PlayerData.UpdateCharacterStatistics(PF_PlayerData.activeCharacter.characterDetails.CharacterId, charUpdates); // User Statistics Section Dictionary <string, int> userUpdates = new Dictionary <string, int>(); // Special calculation for the HighestCharacterLevel (we're pushing a delta, so we have to determine it) var curLevel = PF_PlayerData.activeCharacter.characterData.CharacterLevel; var savedLevel = 0; PF_PlayerData.userStatistics.TryGetValue("HighestCharacterLevel", out savedLevel); var levelUpdate = (Math.Max(curLevel, savedLevel) - savedLevel); userUpdates.Add("Total_DamageDone", damageDone); userUpdates.Add("Total_EncountersCompleted", PF_GamePlay.QuestProgress.CompletedEncounters.Count); userUpdates.Add("Total_UnicornsRescued", PF_GamePlay.QuestProgress.HeroRescues); userUpdates.Add("Total_ItemsUsed", PF_GamePlay.QuestProgress.ItemsUsed); userUpdates.Add("Total_XPGained", PF_GamePlay.QuestProgress.XpCollected); userUpdates.Add("Total_ItemsFound", PF_GamePlay.QuestProgress.ItemsFound.Count); userUpdates.Add("Total_GoldFound", PF_GamePlay.QuestProgress.GoldCollected); userUpdates.Add("Total_QuestsCompleted", 1); userUpdates.Add("Total_BossesKilled", bossesKilled); userUpdates.Add("HighestCharacterLevel", levelUpdate); PF_PlayerData.UpdateUserStatistics(userUpdates); }
public void HandleCallbackSuccess(string details, PlayFabAPIMethods method, MessageDisplayStyle style) { switch (method) { case PlayFabAPIMethods.MakePurchase: // refresh after purchase. if (PF_PlayerData.activeCharacter == null) { PF_PlayerData.GetUserAccountInfo(); } else { PF_PlayerData.GetCharacterInventory(PF_PlayerData.activeCharacter.characterDetails.CharacterId); } break; case PlayFabAPIMethods.GetCharacterInventory: DialogCanvasController.RequestStore(this.StoreName.text); break; case PlayFabAPIMethods.GetAccountInfo: DialogCanvasController.RequestStore(this.StoreName.text); break; } }
public void Initialize(string missionName) { this.missionName = missionName; name.text = missionName; if (GameController.Instance.PlayerData.IsMissionAvailable(missionName) || GameController.Instance.DevModeEnabled) { button.onClick.RemoveAllListeners(); button.onClick.AddListener(() => GameController.Instance.PlayMission(missionName)); lockImage.gameObject.SetActive(false); if (PlayFabClientAPI.IsClientLoggedIn()) { PF_PlayerData.GetPlayerLeaderboardPosition(this.missionName); PF_PlayerData.GetHighScore(this.missionName); } else { SetPlayerScore(); } } else { lockImage.gameObject.SetActive(true); button.onClick.AddListener(() => DialogCanvasManager.Instance.midInfo.Show("Mission Locked!")); } }
void HandleCallbackSuccess(string message, MessageDisplayStyle mg = MessageDisplayStyle.none) { if (message.Contains("New Account Registered")) { Debug.Log("Account Created, logging in with new account."); //System.Collections.Generic.Dictionary<string, string> updates = new System.Collections.Generic.Dictionary<string, string>(); //updates.Add("FireComponent", "1000"); //updates.Add("WaterComponent", "1000"); //updates.Add("GrassComponent", "1000"); //updates.Add("DarkComponent", "1000"); //updates.Add("LightComponent", "1000"); FG_ResourceData updates = new FG_ResourceData() { FireComponent = 1000, WaterComponent = 1000, DarkComponent = 1000, GrassComponent = 1000, LightComponent = 1000 }; System.Collections.Generic.Dictionary <string, string> update2 = new System.Collections.Generic.Dictionary <string, string>(); update2.Add("Component", PlayFab.Json.PlayFabSimpleJson.SerializeObject(updates)); UnityEngine.Events.UnityAction <PlayFab.ClientModels.UpdateUserDataResult> action = (PlayFab.ClientModels.UpdateUserDataResult s) => { PF_Authentication.LoginWithUsername(user.text, pass1.text); }; PF_PlayerData.UpdateUserData(update2, "Public", action); } }
private void Update() { if (Input.GetKeyDown(KeyCode.A)) { PF_PlayerData.CreateNewCharacter(PF_GameData.Classes["Ivysaur"].CatalogCode, PF_GameData.Classes["Ivysaur"]); } }
void CheckIsNewPlayer() { if (PF_PlayerData.SavedTeam == null) { if (PF_PlayerData.playerCharacters.Count != 0) { int rng = Random.Range(0, PF_PlayerData.playerCharacters.Count - 1); PF_PlayerData.MyTeamsCharacterId = new Dictionary <string, List <string> >(); PF_PlayerData.MyTeamsCharacterId.Add("CurrentTeam", new List <string>() { PF_PlayerData.playerCharacters[rng].CharacterId }); string json = PlayFab.Json.PlayFabSimpleJson.SerializeObject(PF_PlayerData.MyTeamsCharacterId); PF_PlayerData.UpdateUserData(new Dictionary <string, string>() { { "Teams", json } }); } if (PF_PlayerData.playerCharacters.Count == 0) { PF_PlayerData.CreateNewCharacter(PF_GameData.Classes.ToList()[0].Value.CatalogCode, PF_GameData.Classes.ToList()[0].Value); } } }
void UpdateTeam() { string jsonToUpdate = PlayFabSimpleJson.SerializeObject(PF_PlayerData.MyTeamsCharacterId); PF_PlayerData.UpdateUserData(new Dictionary <string, string>() { { "Teams", jsonToUpdate } }, "Public", (UpdateUserDataResult) => { Debug.Log(" teams updated"); }); }
public void OnReturnToHubClick() { if (PF_GamePlay.QuestProgress.isQuestWon) { Dictionary <string, object> eventData = new Dictionary <string, object>() { { "Current_Quest", PF_GamePlay.ActiveQuest.levelName }, { "Character_ID", PF_PlayerData.activeCharacter.characterDetails.CharacterId } }; PF_Bridge.LogCustomEvent(PF_Bridge.CustomEventTypes.Client_LevelComplete, eventData); } if (PF_PlayerData.activeCharacter.PlayerVitals.didLevelUp) { Dictionary <string, object> eventData = new Dictionary <string, object>() { { "New_Level", PF_PlayerData.activeCharacter.characterData.CharacterLevel + 1 }, { "Character_ID", PF_PlayerData.activeCharacter.characterDetails.CharacterId }, { "Current_Quest", PF_GamePlay.ActiveQuest.levelName } }; PF_Bridge.LogCustomEvent(PF_Bridge.CustomEventTypes.Client_LevelUp, eventData); } // Only save if the game has been won // may want to add in some stats for missions failed / deaths if (PF_GamePlay.QuestProgress.isQuestWon) { PF_GamePlay.SavePlayerData(); SaveStatistics(); if (PF_GamePlay.QuestProgress.areItemsAwarded == false) { PF_GamePlay.RetriveQuestItems(); } } var loadingDelay = .5f; if (PF_GamePlay.UseRaidMode) { var eventData = new Dictionary <string, object> { { "Killed_By", "Raid Mode" }, { "Enemy_Health", "Raid Mode" }, { "Current_Quest", PF_GamePlay.ActiveQuest.levelName }, { "Character_ID", PF_PlayerData.activeCharacter.characterDetails.CharacterId } }; for (var z = 0; z < PF_GamePlay.QuestProgress.Deaths; z++) { PF_PlayerData.SubtractLifeFromPlayer(); PF_Bridge.LogCustomEvent(PF_Bridge.CustomEventTypes.Client_PlayerDied, eventData); } } GameController.Instance.sceneController.RequestSceneChange(SceneController.GameScenes.Profile, loadingDelay); }
public static void CharacterSelectDataRefresh() { //Debug.Log("Ran CharacterSelectDataRefresh"); PF_GameData.GetTitleData(); PF_GameData.GetTitleNews(); PF_GameData.GetCatalogInfo(); PF_GameData.GetOffersCatalog(); PF_PlayerData.GetPlayerCharacters(); PF_PlayerData.GetUserStatistics(); }
private static void OnGetCatalogSuccess(GetCatalogItemsResult result) { catalogItems.Clear(); foreach (var eachItem in result.Catalog) { catalogItems[eachItem.ItemId] = eachItem; } PF_PlayerData.GetUserAccountInfo(); }
public void OnRemoveFriendClicked() { UnityAction afterRemove = () => { controller.UpdateFriendList(); OnCloseClicked(); }; PF_PlayerData.RemoveFriend(activeFriend.FriendPlayFabId, afterRemove); }
void HandleInventoryRequest(Action <string> callback = null, InventoryFilters filter = InventoryFilters.AllItems) { Action afterGetInventory = () => { // ENABLE THIS AFTER WE HAVE A CONSISTENT WAY TO HIDE TINTS //ShowTint(); floatingInvPrompt.Init(callback, filter); }; PF_PlayerData.GetUserInventory(afterGetInventory); }
public void Continue() { if (changedLoginState) { Dictionary <string, string> updates = new Dictionary <string, string> { { "ShowAccountOptionsOnLogin", PF_PlayerData.showAccountOptionsOnLogin ? "1" : "0" }, { "IsRegisteredForPush", PF_PlayerData.isRegisteredForPush ? "1" : "0" }, }; PF_PlayerData.UpdateUserData(updates); } gameObject.SetActive(false); }
private void Update() { if (Input.GetKeyDown(KeyCode.A)) { int rng = UnityEngine.Random.Range(0, PF_GameData.Classes.Count); PF_PlayerData.CreateNewCharacter(PF_GameData.Classes.ToList()[rng].Value.CatalogCode, PF_GameData.Classes.ToList()[rng].Value); } if (Input.GetKeyDown(KeyCode.F)) { PF_PlayerData.DrawCharactersToUser(); } }
public static void CharacterSelectDataRefresh() { //Debug.Log("Ran CharacterSelectDataRefresh"); PF_GameData.GetEventData(); // PF_GameData.GetActiveEventData(); // now called directly from GetEventData to ensure ordering PF_GameData.GetTitleData(); PF_GameData.GetTitleNews(); PF_GameData.GetCatalogInfo(); PF_GameData.GetOffersCatalog(); PF_PlayerData.GetPlayerCharacters(); PF_PlayerData.GetUserStatistics(); }
public void DeleteCharacter() { Action <bool> processResponse = (bool response) => { if (response == true && this.selectedSlot != null) { PF_PlayerData.DeleteCharacter(this.selectedSlot.saved.characterDetails.CharacterId); this.selectedSlot = null; } }; DialogCanvasController.RequestConfirmationPrompt(GlobalStrings.DEL_CHAR_PROMPT, string.Format(GlobalStrings.DEL_CHAR_MSG, this.selectedSlot.ponyName.text), processResponse); }
public void RefreshInventory() { if (this.activeMode == InventoryMode.Character) { PF_PlayerData.GetUserInventory(); DialogCanvasController.RequestInventoryPrompt(null, this.activeFilter, this.showTransUi, FloatingInventoryController.InventoryMode.Character); } else { PF_PlayerData.GetCharacterInventory(PF_PlayerData.activeCharacter.characterDetails.CharacterId); DialogCanvasController.RequestInventoryPrompt(null, this.activeFilter, this.showTransUi, FloatingInventoryController.InventoryMode.Player); } }
/// <summary> /// Raises the retrieve quest items success event. /// </summary> /// <param name="result">Result.</param> private static void OnRetrieveQuestItemsSuccess(ExecuteCloudScriptResult result) { if (!PF_Bridge.VerifyErrorFreeCloudScriptResult(result)) { return; } QuestProgress.ItemsGranted = JsonWrapper.DeserializeObject <List <ItemGrantResult> >(result.FunctionResult.ToString()); QuestProgress.areItemsAwarded = true; PF_PlayerData.GetUserInventory(); PF_Bridge.RaiseCallbackSuccess("Items granted", PlayFabAPIMethods.RetriveQuestItems, MessageDisplayStyle.none); }
public void ToggleFacebookLink() { if (PF_PlayerData.accountInfo.FacebookInfo != null) { Action <bool> afterCheck = (bool response) => { if (response == true) { //unlink UnityAction afterUnlink = () => { Text txt = this.linkToFaceBook.GetComponentInChildren <Text>(); txt.color = Color.red; txt.text = GlobalStrings.LINK_FB_BTN_MSG; this.facebookPicture.overrideSprite = null; Debug.Log("NEED ACCOUNT REFRESH???"); PF_PlayerData.accountInfo.FacebookInfo = null; this.changedLoginState = true; }; PF_PlayerData.UnlinkFBAccount(afterUnlink); } }; DialogCanvasController.RequestConfirmationPrompt(GlobalStrings.CONFIRM_UNLINK_PROMPT, GlobalStrings.CONFIRM_UNLINK_MSG, afterCheck); } else { // link UnityAction afterLink = () => { Text btnText = this.linkToFaceBook.GetComponentInChildren <Text>(); btnText.text = GlobalStrings.UNLINK_FB_BTN_MSG; btnText.color = Color.green; Debug.Log("NEED ACCOUNT REFRESH???"); this.changedLoginState = true; PF_PlayerData.accountInfo.FacebookInfo = new UserFacebookInfo(); UnityAction <Texture2D> afterGetPhoto = (Texture2D tx) => { facebookPicture.overrideSprite = Sprite.Create(tx, new Rect(0, 0, 128, 128), new Vector2()); }; StartCoroutine(FacebookHelperClass.GetPlayerProfilePhoto(FetchWebAsset, afterGetPhoto)); }; PF_PlayerData.LinkFBAccount(afterLink); } }
private void OnPlayfabCallbackSuccess(string details, PlayFabAPIMethods method, MessageDisplayStyle displayStyle) { if (method == PlayFabAPIMethods.SavePlayerInfo) { //PF_PlayerData.GetCharacterDataById(selectedSlot.saved.characterDetails.CharacterId); PF_PlayerData.GetCharacterData(); } else if (method == PlayFabAPIMethods.GetCharacterReadOnlyData) { RefreshData(); equipController.Refresh(); } }
public void OnCloseClicked() { if (_didCustomTagsChange) { UnityAction afterSetTags = () => { gameObject.SetActive(false); }; PF_PlayerData.SetFriendTags(activeFriend.FriendPlayFabId, activeFriend.Tags, afterSetTags); } ProfilePhoto.overrideSprite = null; gameObject.SetActive(false); }
private void HandlePlayfabCallbackSuccess(string details, PlayFabAPIMethods method, MessageDisplayStyle displayStyle) { if (method == PlayFabAPIMethods.DrawCharacterToUser) { ShowGrantedCharacterImage(details); debugText.text = details; PF_PlayerData.GetUserAccountInfo(); } if (method == PlayFabAPIMethods.GetAccountInfo) { vcText.text = PF_PlayerData.virtualCurrency["NT"].ToString(); CanPlayerDraw(); } }
public void Continue() { if (changedLoginState == true) { PF_PlayerData.showAccountOptionsOnLogin = this.isShownOnLogin; Dictionary <string, string> updates = new Dictionary <string, string>(); updates.Add("ShowAccountOptionsOnLogin", this.isShownOnLogin == true ? "1" : "0"); updates.Add("IsRegisteredForPush", this.isRegisteredForPush == true ? "1" : "0"); PF_PlayerData.UpdateUserData(updates); } this.gameObject.SetActive(false); }
public void PonyPicked(ArrowUI pony) { Action <string> processResponse = (string response) => { if (response != null) { //ShowButtons(); PF_PlayerData.CreateNewCharacter(response, pony.details); } }; string[] randomNames = new string[] { "Sparkle", "Twinkle", "PowerHoof", "Nova", "Lightning", "ReignBow", "Charlie", "Balloonicorn", "Roach" }; int rng = UnityEngine.Random.Range(0, randomNames.Length); DialogCanvasController.RequestTextInputPrompt(GlobalStrings.CHAR_NAME_PROMPT, GlobalStrings.CHAR_NAME_MSG, processResponse, randomNames[rng]); }
void HandleCharacterRequest(Action <string> callback = null, CharacterFilters filter = CharacterFilters.AllCharacter) { Action afterGetCharacter = () => { // ENABLE THIS AFTER WE HAVE A CONSISTENT WAY TO HIDE TINTS //ShowTint(); Action afterGetData = () => { this.floatingChaPrompt.Init(callback, filter); }; PF_PlayerData.GetCharacterData(afterGetData); }; PF_PlayerData.GetPlayerCharacters(afterGetCharacter); }
public static void CharacterSelectDataRefresh() { //Debug.Log("Ran CharacterSelectDataRefresh"); PF_PlayerData.GetUserAccountInfo(); PF_GameData.GetTitleData(); //PF_GameData.GetTitleNews(); PF_GameData.GetCatalogInfo(); //PF_GameData.GetOffersCatalog(); System.Action action = () => { PF_PlayerData.GetCharacterData(); }; PF_PlayerData.GetPlayerCharacters(action); //PF_PlayerData.GetCharacterData(); //PF_PlayerData.GetUserStatistics(); }
void HandleInventoryRequest(Action <string> callback = null, InventoryFilters filter = InventoryFilters.AllItems, bool enableTransUi = true, FloatingInventoryController.InventoryMode displayMode = FloatingInventoryController.InventoryMode.Character) { Action afterGetInventory = () => { // ENABLE THIS AFTER WE HAVE A CONSISTENT WAY TO HIDE TINTS //ShowTint(); this.floatingInvPrompt.Init(callback, filter, enableTransUi, displayMode); }; if (displayMode == FloatingInventoryController.InventoryMode.Character) { PF_PlayerData.GetCharacterInventory(PF_PlayerData.activeCharacter.characterDetails.CharacterId, afterGetInventory); } else { PF_PlayerData.GetUserInventory(afterGetInventory); } }
/// <summary> /// /// </summary> /// <param name="wasAlreadyRedemed">If set to <c>true</c> if the player has already redeemed this offer.</param> public void ContinueClicked(bool wasAlreadyRedemed = false) { UnityAction <string> afterRedeem = (string result) => { if (!string.IsNullOrEmpty(result)) { DialogCanvasController.RequestItemViewer(new List <string>() { result }, true); } PF_PlayerData.OfferContainers.RemoveAt(0); this.Init(); }; PF_PlayerData.RedeemItemOffer(this.activeItem, this.activeInstance.ItemInstanceId, afterRedeem, wasAlreadyRedemed); }
private void CheckToContinue() { if (_isCharacterDataLoaded) { var ponyType = (PF_PlayerData.PlayerClassTypes)Enum.Parse(typeof(PF_PlayerData.PlayerClassTypes), PF_PlayerData.activeCharacter.baseClass.CatalogCode); switch ((int)ponyType) { case 0: foreach (var item in colorize) { item.color = PF_GamePlay.ClassColor1; } break; case 1: foreach (var item in colorize) { item.color = PF_GamePlay.ClassColor2; } break; case 2: foreach (var item in colorize) { item.color = PF_GamePlay.ClassColor3; } break; default: Debug.LogWarning("Unknown Class type detected..."); break; } PF_PlayerData.UpdateActiveCharacterData(); foreach (var each in UiObjects) { each.gameObject.SetActive(true); //<---- BOOM Null Ref each.BroadcastMessage("Init", SendMessageOptions.DontRequireReceiver); } // ResetDataChecks _isCharacterDataLoaded = false; } }
public void HandleCallbackSuccess(string details, PlayFabAPIMethods method, MessageDisplayStyle style) { switch (method) { case PlayFabAPIMethods.GetTitleData_General: case PlayFabAPIMethods.GetAccountInfo: isTitleDataLoaded |= method == PlayFabAPIMethods.GetTitleData_General; isPlayerInventoryLoaded |= method == PlayFabAPIMethods.GetAccountInfo; int extraCount = 0; InventoryCategory temp; if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.inventoryByCategory.TryGetValue("ExtraCharacterSlot", out temp)) { extraCount = temp.count; } maxCharacterSlots = PF_GameData.StartingCharacterSlots + extraCount; break; case PlayFabAPIMethods.GetAllUsersCharacters: isPlayerCharatersLoaded = true; PF_PlayerData.GetCharacterData(); PF_PlayerData.GetCharacterStatistics(); break; case PlayFabAPIMethods.DeleteCharacter: ResetDataChecks(); GameController.CharacterSelectDataRefresh(); break; case PlayFabAPIMethods.GrantCharacterToUser: ResetDataChecks(); GameController.CharacterSelectDataRefresh(); break; case PlayFabAPIMethods.GetCharacterReadOnlyData: isCharacterDataLoaded = true; break; case PlayFabAPIMethods.GetUserStatistics: isUserStatsLoaded = true; break; } CheckToInit(); }