public void IncrementAchievement(UM_Achievement achievement, float percentages) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GameCenterManager.SubmitAchievement(percentages, achievement.IOSId); break; case RuntimePlatform.Android: GPAchievement a = GooglePlayManager.instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.type == GPAchievementType.TYPE_INCREMENTAL) { int steps = Mathf.CeilToInt((a.totalSteps / 100f) * percentages); GooglePlayManager.instance.IncrementAchievementById(achievement.AndroidId, steps); } else { GooglePlayManager.instance.UnlockAchievementById(achievement.AndroidId); } } break; } }
public void IncrementAchievement(UM_Achievement achievement, float percentages) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GameCenterManager.SubmitAchievement(percentages, achievement.IOSId); break; case RuntimePlatform.Android: if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, percentages); } else { GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { int steps = Mathf.CeilToInt(((float)a.TotalSteps / 100f) * percentages); GooglePlayManager.Instance.IncrementAchievementById(achievement.AndroidId, steps); } else { GooglePlayManager.Instance.UnlockAchievementById(achievement.AndroidId); } } } break; } }
public int GetAchievementProgressInSteps(UM_Achievement achievement) { if (achievement == null) { Debug.LogError("Achievement is null. No progress can be retrieved."); return(0); } switch (Application.platform) { case RuntimePlatform.IPhonePlayer: float percentage = GameCenterManager.GetAchievementProgress(achievement.IOSId); return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * percentage)); case RuntimePlatform.Android: GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { return(a.CurrentSteps); } else { return((a.State == GPAchievementState.STATE_UNLOCKED) ? 1 : 0); } } break; } return(0); }
public void IncrementAchievementByCurrentSteps(UM_Achievement achievement, int steps) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: { float percentage = ((float)steps / (float)achievement.Steps) * 100f; GameCenterManager.SubmitAchievement(percentage, achievement.IOSId); break; } case RuntimePlatform.Android: { GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { GooglePlayManager.Instance.IncrementAchievementById(a.Id, steps - a.CurrentSteps); } else { GooglePlayManager.Instance.UnlockAchievementById(a.Id); } } break; } } }
public void RevealAchievement(UM_Achievement achievement) { switch (Application.platform) { case RuntimePlatform.Android: GooglePlayManager.instance.RevealAchievementById(achievement.AndroidId); break; } }
public void UnlockAchievement(string id) { UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id); if (achievement == null) { Debug.LogError("Achievment not found with id: " + id); return; } UnlockAchievement(achievement); }
public void IncrementAchievement(string id, float percentages) { UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id); if (achievement == null) { Debug.LogError("Achievment not found with id: " + id); return; } IncrementAchievement(achievement, percentages); }
public void IncrementAchievementByCurrentSteps(string id, int steps) { UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id); if (achievement == null) { Debug.LogError("Achievement not found with id: " + id); return; } IncrementAchievementByCurrentSteps(achievement, steps); }
public int GetAchievementProgressInSteps(string id) { UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id); if (achievement == null) { Debug.LogError("Achievement not found with id: " + id); return(0); } return(GetAchievementProgressInSteps(achievement)); }
private void UnlockAchievement(UM_Achievement achievement) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GameCenterManager.SubmitAchievement(100f, achievement.IOSId); break; case RuntimePlatform.Android: GooglePlayManager.instance.UnlockAchievementById(achievement.AndroidId); break; } }
public float GetAchievementProgress(UM_Achievement achievement) { if (achievement == null) { return(0f); } switch (Application.platform) { case RuntimePlatform.IPhonePlayer: return(GameCenterManager.GetAchievementProgress(achievement.IOSId)); case RuntimePlatform.Android: if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { GC_Achievement ach = SA_AmazonGameCircleManager.Instance.GetAchievement(achievement.AmazonId); if (ach != null) { return(ach.Progress); } } else { GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { return(((float)a.CurrentSteps / a.TotalSteps) * 100f); } else { if (a.State == GPAchievementState.STATE_UNLOCKED) { return(100f); } else { return(0f); } } } } break; } return(0f); }
public void RevealAchievement(UM_Achievement achievement) { switch (Application.platform) { case RuntimePlatform.Android: if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { //Just do nothing for Amazon } else { GooglePlayManager.Instance.RevealAchievementById(achievement.AndroidId); } break; } }
public int GetAchievementProgressInSteps(UM_Achievement achievement) { if (achievement == null) { Debug.LogError("Achievement is null. No progress can be retrieved."); return(0); } switch (Application.platform) { case RuntimePlatform.IPhonePlayer: float percentage = GameCenterManager.GetAchievementProgress(achievement.IOSId); return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * percentage)); case RuntimePlatform.Android: if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { GC_Achievement ac = SA_AmazonGameCircleManager.Instance.GetAchievement(achievement.AmazonId); if (ac != null) { return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * ac.Progress)); } } else { GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { return(a.CurrentSteps); } else { return((a.State == GPAchievementState.STATE_UNLOCKED) ? 1 : 0); } } } break; } return(0); }
private void UnlockAchievement(UM_Achievement achievement) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GameCenterManager.SubmitAchievement(100f, achievement.IOSId); break; case RuntimePlatform.Android: if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, 100.0f); } else { GooglePlayManager.Instance.UnlockAchievementById(achievement.AndroidId); } break; } }
public float GetAchievementProgress(UM_Achievement achievement) { if (achievement == null) { return(0f); } switch (Application.platform) { case RuntimePlatform.IPhonePlayer: return(GameCenterManager.GetAchievementProgress(achievement.IOSId)); case RuntimePlatform.Android: GPAchievement a = GooglePlayManager.instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.type == GPAchievementType.TYPE_INCREMENTAL) { return((a.currentSteps / a.totalSteps) * 100f); } else { if (a.state == GPAchievementState.STATE_UNLOCKED) { return(100f); } else { return(0f); } } } break; } return(0f); }
public void IncrementAchievementByCurrentSteps(UM_Achievement achievement, int steps) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: { float percentage = ((float)steps / (float)achievement.Steps) * 100f; GameCenterManager.SubmitAchievement(percentage, achievement.IOSId); break; } case RuntimePlatform.Android: { if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon) { float percentage = ((float)steps / (float)achievement.Steps) * 100f; SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, percentage); } else { GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId); if (a != null) { if (a.Type == GPAchievementType.TYPE_INCREMENTAL) { GooglePlayManager.Instance.IncrementAchievementById(a.Id, steps - a.CurrentSteps); } else { GooglePlayManager.Instance.UnlockAchievementById(a.Id); } } } break; } } }
//-------------------------------------- // Achievements //-------------------------------------- public void AddAchievement(UM_Achievement a) { Achievements.Add(a); }
public void RemoveAchievement(UM_Achievement a) { Achievements.Remove(a); }
private void GameServiceSettings() { EditorGUI.indentLevel = 0; settings.IsGameServiceOpen = EditorGUILayout.Foldout(settings.IsGameServiceOpen, "Game Service"); if(settings.IsGameServiceOpen) { EditorGUI.indentLevel++; { Dictionary<string, string> resources = new Dictionary<string, string>(); if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) { //Parse XML file with PlayService Settings ID's XmlDocument doc = new XmlDocument(); doc.Load(Application.dataPath + "/Plugins/Android/AN_Res/res/values/ids.xml"); XmlNode rootResourcesNode = doc.DocumentElement; foreach(XmlNode chn in rootResourcesNode.ChildNodes) { if (chn.Name.Equals("string")) { if (chn.Attributes["name"] != null) { if (!chn.Attributes["name"].Value.Equals("app_id")) { resources.Add(chn.Attributes["name"].Value, chn.InnerText); } } } } } settings.IsLeaderBoardsOpen = EditorGUILayout.Foldout(settings.IsLeaderBoardsOpen, "Leaderboards"); if(settings.IsLeaderBoardsOpen) { if(settings.Leaderboards.Count == 0) { EditorGUILayout.HelpBox("No Leaderboards Added", MessageType.Warning); } foreach(UM_Leaderboard leaderbaord in settings.Leaderboards) { GPLeaderBoard gpLb = GetAndroidLeaderboard(leaderbaord.AndroidId); GK_Leaderboard gkLb = GetIOSLeaderboard(leaderbaord.IOSId); EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); GUIStyle s = new GUIStyle(); s.padding = new RectOffset(); s.margin = new RectOffset(); s.border = new RectOffset(); if(leaderbaord.Texture != null) { GUILayout.Box(leaderbaord.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)}); } leaderbaord.IsOpen = EditorGUILayout.Foldout(leaderbaord.IsOpen, leaderbaord.id); bool ItemWasRemoved = DrawSortingButtons((object) leaderbaord, settings.Leaderboards, (object) gpLb, AndroidNativeSettings.Instance.Leaderboards, (object) gkLb, IOSNativeSettings.Instance.Leaderboards); if(ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if(leaderbaord.IsOpen) { EditorGUI.indentLevel++; { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(LID); leaderbaord.id = EditorGUILayout.TextField(leaderbaord.id); if(leaderbaord.id.Length > 0) { leaderbaord.id = leaderbaord.id.Trim(); } gkLb.Info.Title = leaderbaord.id; gpLb.Name = leaderbaord.id; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(IOSLID); leaderbaord.IOSId = EditorGUILayout.TextField(leaderbaord.IOSId); if(leaderbaord.IOSId.Length > 0) { leaderbaord.IOSId = leaderbaord.IOSId.Trim(); } EditorGUILayout.EndHorizontal(); gkLb.Info.Identifier = leaderbaord.IOSId; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(ANDROIDLID); EditorGUI.BeginChangeCheck(); bool doesntMatch = false; bool fileDoesntExists = false; string name = string.Empty; string[] names = new string[resources.Keys.Count + 1]; names[0] = "[None]"; resources.Keys.CopyTo(names, 1); List<string> listNames = new List<string>(names); if (leaderbaord.AndroidId.Equals(string.Empty)) { name = names[EditorGUILayout.Popup(0, names)]; } else { if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) { if (resources.ContainsValue(leaderbaord.AndroidId)) { name = names[EditorGUILayout.Popup(listNames.IndexOf(GetKeyForValue(resources, leaderbaord.AndroidId)), names)]; } else { doesntMatch = true; name = names[EditorGUILayout.Popup(0, names)]; } } else { fileDoesntExists = true; } } if (EditorGUI.EndChangeCheck()){ if (!name.Equals("[None]")) { leaderbaord.AndroidId = resources[name]; } } if(leaderbaord.AndroidId.Length > 0) { leaderbaord.AndroidId = leaderbaord.AndroidId.Trim(); } gpLb.Id = leaderbaord.AndroidId; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (fileDoesntExists) { EditorGUILayout.HelpBox("XML file with PlayService ID's DOESN'T exist", MessageType.Warning); } if (doesntMatch) { EditorGUILayout.HelpBox("Leaderboard ID doesn't match any PlayService ID of ids.xml file", MessageType.Warning); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(LeaderboardDescriptionLabel); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); leaderbaord.Description = EditorGUILayout.TextArea(leaderbaord.Description, new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} ); gkLb.Info.Description = leaderbaord.Description; gpLb.Description = leaderbaord.Description; leaderbaord.Texture = (Texture2D) EditorGUILayout.ObjectField("", leaderbaord.Texture, typeof (Texture2D), false); gkLb.Info.Texture = leaderbaord.Texture; gpLb.Texture = leaderbaord.Texture; EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUI.indentLevel--; } EditorGUILayout.EndVertical(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if(GUILayout.Button("Add new", GUILayout.Width(80))) { UM_Leaderboard lb = new UM_Leaderboard(); int index = 0; do { index++; } while (IsLeaderboardExists(lb.id + index.ToString())); lb.id = lb.id + index.ToString(); lb.AndroidId = lb.id; lb.IOSId = lb.id; settings.AddLeaderboard(lb); AndroidNativeSettings.Instance.Leaderboards.Add(new GPLeaderBoard(lb.AndroidId, lb.id)); GK_Leaderboard iOSLb = new GK_Leaderboard(lb.IOSId); iOSLb.Info.Title = lb.id; IOSNativeSettings.Instance.Leaderboards.Add(iOSLb); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } settings.IsAchievementsOpen = EditorGUILayout.Foldout(settings.IsAchievementsOpen, "Achievements"); if(settings.IsAchievementsOpen) { if(settings.Achievements.Count == 0) { EditorGUILayout.HelpBox("No Achievements Added", MessageType.Warning); } foreach(UM_Achievement achievement in settings.Achievements) { GPAchievement gpAch = GetAndroidAchievement(achievement.AndroidId); GK_AchievementTemplate gkAch = GetIOSAchievement(achievement.IOSId); EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); GUIStyle s = new GUIStyle(); s.padding = new RectOffset(); s.margin = new RectOffset(); s.border = new RectOffset(); if(achievement.Texture != null) { GUILayout.Box(achievement.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)}); } achievement.IsOpen = EditorGUILayout.Foldout(achievement.IsOpen, achievement.id); bool ItemWasRemoved = DrawSortingButtons((object) achievement, settings.Achievements, (object) gpAch, AndroidNativeSettings.Instance.Achievements, (object) gkAch, IOSNativeSettings.Instance.Achievements); if(ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if(achievement.IsOpen) { EditorGUI.indentLevel++; { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AID); achievement.id = EditorGUILayout.TextField(achievement.id); if(achievement.id.Length > 0) { achievement.id = achievement.id.Trim(); } gkAch.Title = achievement.id; gpAch.Name = achievement.id; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(ALID); achievement.IOSId = EditorGUILayout.TextField(achievement.IOSId); if(achievement.IOSId.Length > 0) { achievement.IOSId = achievement.IOSId.Trim(); } gkAch.Id = achievement.IOSId; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(ANDROIDAID); EditorGUI.BeginChangeCheck(); bool doesntMatch = false; bool fileDoesntExists = false; string name = string.Empty; string[] names = new string[resources.Keys.Count + 1]; names[0] = "[None]"; resources.Keys.CopyTo(names, 1); List<string> listNames = new List<string>(names); if (achievement.AndroidId.Equals(string.Empty)) { name = names[EditorGUILayout.Popup(0, names)]; } else { if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) { if (resources.ContainsValue(achievement.AndroidId)) { name = names[EditorGUILayout.Popup(listNames.IndexOf(GetKeyForValue(resources, achievement.AndroidId)), names)]; } else { doesntMatch = true; name = names[EditorGUILayout.Popup(0, names)]; } } else { fileDoesntExists = true; } } if (EditorGUI.EndChangeCheck()){ if (!name.Equals("[None]")) { achievement.AndroidId = resources[name]; } } if(achievement.AndroidId.Length > 0) { achievement.AndroidId = achievement.AndroidId.Trim(); } gpAch.Id = achievement.AndroidId; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (fileDoesntExists) { EditorGUILayout.HelpBox("XML file with PlayService ID's DOESN'T exist", MessageType.Warning); } if (doesntMatch) { EditorGUILayout.HelpBox("Achievement ID doesn't match any PlayService ID of ids.xml file", MessageType.Warning); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AchievementDescriptionLabel); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); achievement.Description = EditorGUILayout.TextArea(achievement.Description, new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} ); gkAch.Description = achievement.Description; gpAch.Description = achievement.Description; achievement.Texture = (Texture2D) EditorGUILayout.ObjectField("", achievement.Texture, typeof (Texture2D), false); gkAch.Texture = achievement.Texture; gpAch.Texture = achievement.Texture; EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUI.indentLevel--; } EditorGUILayout.EndVertical(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if(GUILayout.Button("Add new", GUILayout.Width(80))) { UM_Achievement ac = new UM_Achievement(); int index = 0; do { index++; } while (IsAchievementExists(ac.id + index.ToString())); ac.id = ac.id + index.ToString(); ac.AndroidId = ac.id; ac.IOSId = ac.id; settings.AddAchievement(ac); AndroidNativeSettings.Instance.Achievements.Add(new GPAchievement(ac.AndroidId, ac.id)); IOSNativeSettings.Instance.Achievements.Add(new GK_AchievementTemplate(){Id = ac.IOSId, Title = ac.id}); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } } EditorGUI.indentLevel--; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AutoLoadBigmagesLoadTitle); UltimateMobileSettings.Instance.AutoLoadUsersBigImages = EditorGUILayout.Toggle(UltimateMobileSettings.Instance.AutoLoadUsersBigImages); IOSNativeSettings.Instance.AutoLoadUsersBigImages = UltimateMobileSettings.Instance.AutoLoadUsersBigImages; AndroidNativeSettings.Instance.LoadProfileImages = UltimateMobileSettings.Instance.AutoLoadUsersBigImages; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AutoLoadSmallImagesLoadTitle); UltimateMobileSettings.Instance.AutoLoadUsersSmallImages = EditorGUILayout.Toggle(UltimateMobileSettings.Instance.AutoLoadUsersSmallImages); IOSNativeSettings.Instance.AutoLoadUsersSmallImages = UltimateMobileSettings.Instance.AutoLoadUsersSmallImages; AndroidNativeSettings.Instance.LoadProfileIcons = UltimateMobileSettings.Instance.AutoLoadUsersSmallImages; EditorGUILayout.EndHorizontal(); } }
public void ReportAchievement(UM_Achievement achievement) { ReportAchievement(achievement); }