using System; using System.Collections.Generic; using UnityEngine.SocialPlatforms.Impl; namespace UnityEngine.SocialPlatforms { // Token: 0x02000383 RID: 899 public class Local : ISocialPlatform { // Token: 0x17000C6A RID: 3178 // (get) Token: 0x060035E5 RID: 13797 RVA: 0x0005A578 File Offset: 0x00058778 public ILocalUser localUser { get { if (Local.m_LocalUser == null) { Local.m_LocalUser = new LocalUser(); } return Local.m_LocalUser; } } // Token: 0x060035E6 RID: 13798 RVA: 0x0005A5A8 File Offset: 0x000587A8 void ISocialPlatform.Authenticate(ILocalUser user, Action callback) { LocalUser localUser = (LocalUser)user; this.m_DefaultTexture = this.CreateDummyTexture(32, 32); this.PopulateStaticData(); localUser.SetAuthenticated(true); localUser.SetUnderage(false); localUser.SetUserID("1000"); localUser.SetUserName("Lerpz"); localUser.SetImage(this.m_DefaultTexture); if (callback != null) { callback(true); } } // Token: 0x060035E7 RID: 13799 RVA: 0x0005A610 File Offset: 0x00058810 void ISocialPlatform.Authenticate(ILocalUser user, Action callback) { ((ISocialPlatform)this).Authenticate(user, delegate(bool success) { callback(success, null); }); } // Token: 0x060035E8 RID: 13800 RVA: 0x0005A640 File Offset: 0x00058840 void ISocialPlatform.LoadFriends(ILocalUser user, Action callback) { if (this.VerifyUser()) { ((LocalUser)user).SetFriends(this.m_Friends.ToArray()); if (callback != null) { callback(true); } } } // Token: 0x060035E9 RID: 13801 RVA: 0x0005A678 File Offset: 0x00058878 public void LoadUsers(string[] userIDs, Action callback) { List list = new List(); if (this.VerifyUser()) { foreach (string text in userIDs) { foreach (UserProfile userProfile in this.m_Users) { if (userProfile.id == text) { list.Add(userProfile); } } foreach (UserProfile userProfile2 in this.m_Friends) { if (userProfile2.id == text) { list.Add(userProfile2); } } } callback(list.ToArray()); } } // Token: 0x060035EA RID: 13802 RVA: 0x0005A78C File Offset: 0x0005898C public void ReportProgress(string id, double progress, Action callback) { if (this.VerifyUser()) { foreach (Achievement achievement in this.m_Achievements) { if (achievement.id == id && achievement.percentCompleted <= progress) { if (progress >= 100.0) { achievement.SetCompleted(true); } achievement.SetHidden(false); achievement.SetLastReportedDate(DateTime.Now); achievement.percentCompleted = progress; if (callback != null) { callback(true); } return; } } foreach (AchievementDescription achievementDescription in this.m_AchievementDescriptions) { if (achievementDescription.id == id) { bool flag = progress >= 100.0; Achievement achievement2 = new Achievement(id, progress, flag, false, DateTime.Now); this.m_Achievements.Add(achievement2); if (callback != null) { callback(true); } return; } } Debug.LogError("Achievement ID not found"); if (callback != null) { callback(false); } } } // Token: 0x060035EB RID: 13803 RVA: 0x0005A90C File Offset: 0x00058B0C public void LoadAchievementDescriptions(Action callback) { if (this.VerifyUser()) { if (callback != null) { callback(this.m_AchievementDescriptions.ToArray()); } } } // Token: 0x060035EC RID: 13804 RVA: 0x0005A938 File Offset: 0x00058B38 public void LoadAchievements(Action callback) { if (this.VerifyUser()) { if (callback != null) { callback(this.m_Achievements.ToArray()); } } } // Token: 0x060035ED RID: 13805 RVA: 0x0005A964 File Offset: 0x00058B64 public void ReportScore(long score, string board, Action callback) { if (this.VerifyUser()) { foreach (Leaderboard leaderboard in this.m_Leaderboards) { if (leaderboard.id == board) { leaderboard.SetScores(new List((Score[])leaderboard.scores) { new Score(board, score, this.localUser.id, DateTime.Now, score + " points", 0) }.ToArray()); if (callback != null) { callback(true); } return; } } Debug.LogError("Leaderboard not found"); if (callback != null) { callback(false); } } } // Token: 0x060035EE RID: 13806 RVA: 0x0005AA54 File Offset: 0x00058C54 public void LoadScores(string leaderboardID, Action callback) { if (this.VerifyUser()) { foreach (Leaderboard leaderboard in this.m_Leaderboards) { if (leaderboard.id == leaderboardID) { this.SortScores(leaderboard); if (callback != null) { callback(leaderboard.scores); } return; } } Debug.LogError("Leaderboard not found"); if (callback != null) { callback(new Score[0]); } } } // Token: 0x060035EF RID: 13807 RVA: 0x0005AB0C File Offset: 0x00058D0C void ISocialPlatform.LoadScores(ILeaderboard board, Action callback) { if (this.VerifyUser()) { Leaderboard leaderboard = (Leaderboard)board; foreach (Leaderboard leaderboard2 in this.m_Leaderboards) { if (leaderboard2.id == leaderboard.id) { leaderboard.SetTitle(leaderboard2.title); leaderboard.SetScores(leaderboard2.scores); leaderboard.SetMaxRange((uint)leaderboard2.scores.Length); } } this.SortScores(leaderboard); this.SetLocalPlayerScore(leaderboard); if (callback != null) { callback(true); } } } // Token: 0x060035F0 RID: 13808 RVA: 0x0005ABD8 File Offset: 0x00058DD8 bool ISocialPlatform.GetLoading(ILeaderboard board) { return this.VerifyUser() && ((Leaderboard)board).loading; } // Token: 0x060035F1 RID: 13809 RVA: 0x0005AC0C File Offset: 0x00058E0C private void SortScores(Leaderboard board) { List list = new List((Score[])board.scores); list.Sort((Score s1, Score s2) => s2.value.CompareTo(s1.value)); for (int i = 0; i < list.Count; i++) { list[i].SetRank(i + 1); } } // Token: 0x060035F2 RID: 13810 RVA: 0x0005AC74 File Offset: 0x00058E74 private void SetLocalPlayerScore(Leaderboard board) { foreach (Score score in board.scores) { if (score.userID == this.localUser.id) { board.SetLocalUserScore(score); break; } } } // Token: 0x060035F3 RID: 13811 RVA: 0x0005ACD4 File Offset: 0x00058ED4 public void ShowAchievementsUI() { Debug.Log("ShowAchievementsUI not implemented"); } // Token: 0x060035F4 RID: 13812 RVA: 0x0005ACE4 File Offset: 0x00058EE4 public void ShowLeaderboardUI() { Debug.Log("ShowLeaderboardUI not implemented"); } // Token: 0x060035F5 RID: 13813 RVA: 0x0005ACF4 File Offset: 0x00058EF4 public ILeaderboard CreateLeaderboard() { return new Leaderboard(); } // Token: 0x060035F6 RID: 13814 RVA: 0x0005AD10 File Offset: 0x00058F10 public IAchievement CreateAchievement() { return new Achievement(); } // Token: 0x060035F7 RID: 13815 RVA: 0x0005AD2C File Offset: 0x00058F2C private bool VerifyUser() { bool flag; if (!this.localUser.authenticated) { Debug.LogError("Must authenticate first"); flag = false; } else { flag = true; } return flag; } // Token: 0x060035F8 RID: 13816 RVA: 0x0005AD64 File Offset: 0x00058F64 private void PopulateStaticData() { this.m_Friends.Add(new UserProfile("Fred", "1001", true, UserState.Online, this.m_DefaultTexture)); this.m_Friends.Add(new UserProfile("Julia", "1002", true, UserState.Online, this.m_DefaultTexture)); this.m_Friends.Add(new UserProfile("Jeff", "1003", true, UserState.Online, this.m_DefaultTexture)); this.m_Users.Add(new UserProfile("Sam", "1004", false, UserState.Offline, this.m_DefaultTexture)); this.m_Users.Add(new UserProfile("Max", "1005", false, UserState.Offline, this.m_DefaultTexture)); this.m_AchievementDescriptions.Add(new AchievementDescription("Achievement01", "First achievement", this.m_DefaultTexture, "Get first achievement", "Received first achievement", false, 10)); this.m_AchievementDescriptions.Add(new AchievementDescription("Achievement02", "Second achievement", this.m_DefaultTexture, "Get second achievement", "Received second achievement", false, 20)); this.m_AchievementDescriptions.Add(new AchievementDescription("Achievement03", "Third achievement", this.m_DefaultTexture, "Get third achievement", "Received third achievement", false, 15)); Leaderboard leaderboard = new Leaderboard(); leaderboard.SetTitle("High Scores"); leaderboard.id = "Leaderboard01"; leaderboard.SetScores(new List { new Score("Leaderboard01", 300L, "1001", DateTime.Now.AddDays(-1.0), "300 points", 1), new Score("Leaderboard01", 255L, "1002", DateTime.Now.AddDays(-1.0), "255 points", 2), new Score("Leaderboard01", 55L, "1003", DateTime.Now.AddDays(-1.0), "55 points", 3), new Score("Leaderboard01", 10L, "1004", DateTime.Now.AddDays(-1.0), "10 points", 4) }.ToArray()); this.m_Leaderboards.Add(leaderboard); } // Token: 0x060035F9 RID: 13817 RVA: 0x0005AFB8 File Offset: 0x000591B8 private Texture2D CreateDummyTexture(int width, int height) { Texture2D texture2D = new Texture2D(width, height); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { Color color = (((j & i) <= 0) ? Color.gray : Color.white); texture2D.SetPixel(j, i, color); } } texture2D.Apply(); return texture2D; } // Token: 0x04000C1B RID: 3099 private static LocalUser m_LocalUser = null; // Token: 0x04000C1C RID: 3100 private List m_Friends = new List(); // Token: 0x04000C1D RID: 3101 private List m_Users = new List(); // Token: 0x04000C1E RID: 3102 private List m_AchievementDescriptions = new List(); // Token: 0x04000C1F RID: 3103 private List m_Achievements = new List(); // Token: 0x04000C20 RID: 3104 private List m_Leaderboards = new List(); // Token: 0x04000C21 RID: 3105 private Texture2D m_DefaultTexture; } }