internal static async Task <IEnumerable <WaveEngine.Social.LeaderboardScore> > MapLeaderBoards(IEnumerable <GKScore> scores) { List <WaveEngine.Social.LeaderboardScore> waveScores = null; if (scores != null) { waveScores = new List <WaveEngine.Social.LeaderboardScore>(); foreach (var item in scores) { var scoreHolder = await IOSMapper.MapPlayer(item.Player); var waveLeaderBoardScore = new WaveEngine.Social.LeaderboardScore() { DisplayRank = null, DisplayScore = item.FormattedValue, Rank = item.Rank, RawScore = item.Value, ScoreHolder = scoreHolder, ScoreTag = null, }; waveScores.Add(waveLeaderBoardScore); } } return(waveScores); }
/// <summary> /// Logins local user. /// </summary> /// <returns> /// The logged in user. /// </returns> public Task <Player> Login() { var tcs = new TaskCompletionSource <Player>(); GKLocalPlayer.LocalPlayer.Authenticate(async(error) => { var localPlayer = GKLocalPlayer.LocalPlayer; Player result = null; if (error != null) { #if DEBUG new UIAlertView("Score submittion failed", "Submittion failed because: " + error, null, "OK", null).Show(); #endif } else if (localPlayer != null && localPlayer.Authenticated) { result = await IOSMapper.MapPlayer(localPlayer); } tcs.TrySetResult(result); }); return(tcs.Task); }
internal static async Task <IEnumerable <WaveEngine.Social.Achievement> > MapAchievements(IEnumerable <GKAchievement> achievements) { List <WaveEngine.Social.Achievement> waveAchievements = null; if (achievements != null) { waveAchievements = new List <WaveEngine.Social.Achievement>(); foreach (var achievement in achievements) { var waveAchievement = new WaveEngine.Social.Achievement() { AchievementCode = achievement.Identifier, CurrentSteps = achievement.PercentComplete, Description = achievement.Description, Player = await IOSMapper.MapPlayer(achievement.Player), RevealedImageUri = null, UnlockedImageUri = null, State = 0, TotalSteps = 0, Type = 0, LastUpdatedTimestamp = 0, }; waveAchievements.Add(waveAchievement); } } return(waveAchievements); }