private void ActionNode13_errorCallback(PlayFab.PlayFabError error) {
     ActionNode13_error = error;
     ActionNode18_message = ActionNode13_error.ErrorMessage;
     // ActionNode
     // Visit uFrame.Actions.DebugLibrary.LogMessage
     uFrame.Actions.DebugLibrary.LogMessage(ActionNode18_message);
 }
 private void ActionNode13_resultCallback(PlayFab.ClientModels.LoginResult result) {
     ActionNode13_result = result;
     // PublishEventNode
     var PublishEventNode15_Event = new UserLoggedIn();
     System.Publish(PublishEventNode15_Event);
     PublishEventNode15_Result = PublishEventNode15_Event;
 }
 private void ConstructLeaderboard(PlayFab.ClientModels.GetLeaderboardResult result)
 {
     LeaderboardHighScores.Clear ();
     foreach (PlayFab.ClientModels.PlayerLeaderboardEntry entry in result.Leaderboard) {
         if (entry.DisplayName != null)
             LeaderboardHighScores.Add (entry.DisplayName, (uint)entry.StatValue);
         else
             LeaderboardHighScores.Add (entry.PlayFabId, (uint)entry.StatValue);
     }
     leaderboardLoaded = true;
 }
	public void LoadLeaderboard (PlayFab.ClientModels.GetLeaderboardResult lbResult)
	{
		LeaderboardHighScores.Clear();

		foreach (PlayFab.ClientModels.PlayerLeaderboardEntry entry in lbResult.Leaderboard)
		{
			if(entry.DisplayName != null)
			{
				LeaderboardHighScores.Add (entry.DisplayName, (uint)entry.StatValue);				
			}
			else
			{
				LeaderboardHighScores.Add (entry.PlayFabId, (uint)entry.StatValue);
			}
		}
		Initialize();
	}
		public static MemberInfo GetField(this Type type, string member, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().GetDeclaredField(member);
		}
		private static bool TestAccessibility(MethodBase member, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			bool visibility = (member.IsPublic && bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.Public)) ||
			  (!member.IsPublic && bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.NonPublic));

			bool instance = (member.IsStatic && bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.Static)) ||
			  (!member.IsStatic && bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.Instance));

			return visibility && instance;
		}
		private static bool TestAccessibility(MemberInfo member, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			if (member is FieldInfo)
			{
				return TestAccessibility((FieldInfo)member, bindingFlags);
			}
			else if (member is MethodBase)
			{
				return TestAccessibility((MethodBase)member, bindingFlags);
			}
			else if (member is PropertyInfo)
			{
				return TestAccessibility((PropertyInfo)member, bindingFlags);
			}

			throw new Exception("Unexpected member type.");
		}
		public static MethodInfo GetMethod(this Type type, string name, PlayFab.Json.Utilities.BindingFlags bindingFlags, object placeHolder1, IList<Type> parameterTypes, object placeHolder2)
		{
			return type.GetTypeInfo().DeclaredMethods.Where(m =>
			{
				if (name != null && m.Name != name)
					return false;

				if (!TestAccessibility(m, bindingFlags))
					return false;

				return m.GetParameters().Select(p => p.ParameterType).SequenceEqual(parameterTypes);
			}).SingleOrDefault();
		}
 public void GetClientLbCallback(PlayFab.ClientModels.GetLeaderboardResult result)
 {
     if (result.Leaderboard.Count > 0)
         lastReceivedMessage = "Get Client Leaderboard Successful";
     else
         lastReceivedMessage = "Get Client Leaderboard, empty";
 }
 private void GrantCharCallback(PlayFab.ServerModels.GrantCharacterToUserResult result)
 {
     lastReceivedMessage = "Grant Char Successful";
 }
		public static PropertyInfo GetProperty(this Type type, string name, PlayFab.Json.Utilities.BindingFlags bindingFlags, object placeholder1, Type propertyType, IList<Type> indexParameters, object placeholder2)
		{
			return type.GetTypeInfo().DeclaredProperties.Where(p =>
			{
				if (name != null && name != p.Name)
					return false;
				if (propertyType != null && propertyType != p.PropertyType)
					return false;
				if (indexParameters != null)
				{
					if (!p.GetIndexParameters().Select(ip => ip.ParameterType).SequenceEqual(indexParameters))
						return false;
				}

				return true;
			}).SingleOrDefault();
		}
 /// <summary>
 /// Event called when push notification is successfully sent.
 /// </summary>
 /// <param name="result">Result data.</param>
 private void OnSendPushNotificationSuccess(PlayFab.Server.SendPushNotificationResult result)
 {
     Debug.Log("Successfully sent push notification");
 }
		public static MemberInfo[] GetMember(this Type type, string member, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().GetMembersRecursive().Where(m => m.Name == member && TestAccessibility(m, bindingFlags)).ToArray();
		}
		public static ConstructorInfo GetConstructor(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags, object placeholder1, IList<Type> parameterTypes, object placeholder2)
		{
			return type.GetConstructors(bindingFlags, parameterTypes).SingleOrDefault();
		}
		private static IEnumerable<ConstructorInfo> GetConstructors(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags, IList<Type> parameterTypes)
		{
			return type.GetTypeInfo().DeclaredConstructors.Where(c =>
			{
				if (!TestAccessibility(c, bindingFlags))
					return false;

				if (parameterTypes != null && !c.GetParameters().Select(p => p.ParameterType).SequenceEqual(parameterTypes))
					return false;

				return true;
			});
		}
		public static IEnumerable<ConstructorInfo> GetConstructors(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetConstructors(bindingFlags, null);
		}
		public static IEnumerable<MemberInfo> GetMember(this Type type, string name, MemberTypes memberType, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().GetMembersRecursive().Where(m =>
			{
				if (name != null && name != m.Name)
					return false;
				if (m.MemberType() != memberType)
					return false;
				if (!TestAccessibility(m, bindingFlags))
					return false;

				return true;
			});
		}
		private void ConstructLeaderboard (PlayFab.ClientModels.GetLeaderboardResult result)
		{
			LeaderboardHighScores.Clear ();

			foreach (PlayFab.ClientModels.PlayerLeaderboardEntry entry in result.Leaderboard) {
				if (entry.DisplayName != null)
					LeaderboardHighScores.Add (entry.DisplayName, (uint)entry.StatValue); 
				else
					LeaderboardHighScores.Add (entry.PlayFabId, (uint)entry.StatValue); 
			}

/*			LeaderboardHighScores.Add ("ueryetyu",89); 
			LeaderboardHighScores.Add ("qewyqey",88); 
			LeaderboardHighScores.Add ("ddarhddd",50); 
			LeaderboardHighScores.Add ("eewetheee dgld",49); 
			LeaderboardHighScores.Add ("arhadh",47); 
			LeaderboardHighScores.Add ("byeryj",30); 
			LeaderboardHighScores.Add ("kfjlcl",39); 
			LeaderboardHighScores.Add ("fjlfhl dfgjlfhj",37); 
			LeaderboardHighScores.Add ("adasdfhht",90); 
			LeaderboardHighScores.Add ("uexvb rasdfyetyu",89); 
			LeaderboardHighScores.Add ("qeasdfwyqey",88); 
			LeaderboardHighScores.Add ("da bb xvvsdfdarhddd",50); 
			LeaderboardHighScores.Add ("eeasdfwetheee dgld",49); 
			LeaderboardHighScores.Add ("arab sdghadh",47); 
			LeaderboardHighScores.Add ("byfgb beryj",30); 
			LeaderboardHighScores.Add ("kfxsxvb dxvgbjlcl",39); 
			LeaderboardHighScores.Add ("fjfxb gblfhl dfgjlfhj",37); 
			LeaderboardHighScores.Add ("adfxb dnhht",90); 
			LeaderboardHighScores.Add ("ufdg eryetyu",89); 
			LeaderboardHighScores.Add ("qedcx fgnwyqey",88); 
			LeaderboardHighScores.Add ("dddfgnarhddd",50); 
			LeaderboardHighScores.Add ("eeadfwetheee dgld",49); 
			LeaderboardHighScores.Add ("ab rhadh",47); 
			LeaderboardHighScores.Add ("bybxc eryj",30); 
			LeaderboardHighScores.Add ("kfjdaflcl",39); 
			LeaderboardHighScores.Add ("fjcxblfhl dfgjlfhj",37); 
*/

			leaderboardLoaded = true;
		}
		public static IEnumerable<PropertyInfo> GetProperties(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			IList<PropertyInfo> properties = (bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.DeclaredOnly))
			  ? type.GetTypeInfo().DeclaredProperties.ToList()
			  : type.GetTypeInfo().GetPropertiesRecursive();

			return properties.Where(p => TestAccessibility(p, bindingFlags));
		}
		public static IEnumerable<MethodInfo> GetMethods(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().DeclaredMethods;
		}
		public static PropertyInfo GetProperty(this Type type, string name, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().GetDeclaredProperty(name);
		}
 private void GetCharsCallback(PlayFab.ServerModels.ListUsersCharactersResult result)
 {
     lastReceivedMessage = "Get Chars Successful";
     foreach (var eachCharacter in result.Characters)
         if (eachCharacter.CharacterName == CHAR_NAME)
             targetCharacter = eachCharacter;
 }
		public static IEnumerable<FieldInfo> GetFields(this Type type, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			IList<FieldInfo> fields = (bindingFlags.HasFlag(PlayFab.Json.Utilities.BindingFlags.DeclaredOnly))
			  ? type.GetTypeInfo().DeclaredFields.ToList()
			  : type.GetTypeInfo().GetFieldsRecursive();

			return fields.Where(f => TestAccessibility(f, bindingFlags)).ToList();
		}
 public void GetServerLbCallback(PlayFab.ServerModels.GetLeaderboardAroundCharacterResult result)
 {
     if (result.Leaderboard.Count > 0)
         lastReceivedMessage = "Get Server Leaderboard Successful";
     else
         lastReceivedMessage = "Get Server Leaderboard, empty";
 }
		private static bool TestAccessibility(PropertyInfo member, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			if (member.GetMethod != null && TestAccessibility(member.GetMethod, bindingFlags))
				return true;

			if (member.SetMethod != null && TestAccessibility(member.SetMethod, bindingFlags))
				return true;

			return false;
		}
 private void StatsUpdated(PlayFab.ClientModels.UpdateUserStatisticsResult result)
 {
     Debug.Log ("Stats updated");
 }
		public static MethodInfo GetMethod(this Type type, string name, PlayFab.Json.Utilities.BindingFlags bindingFlags)
		{
			return type.GetTypeInfo().GetDeclaredMethod(name);
		}