コード例 #1
0
ファイル: IndieCityManager.cs プロジェクト: Indiefreaks/igf
        public IndieCityManager(string gameId, string serviceId, string serviceSecret, bool hasAchievements, bool hasLeaderboards, IManagerServiceProvider serviceProvider, SessionEndDelegate sessionEndDelegate)
        {
            _sceneInterface     = serviceProvider;
            _sessionEndDelegate = sessionEndDelegate;

            ManagerProcessOrder = 10;

            var service = new ServiceId
            {
                Data1 = uint.Parse(serviceId.Substring(0, 8), NumberStyles.HexNumber),
                Data2 = ushort.Parse(serviceId.Substring(9, 4), NumberStyles.HexNumber),
                Data3 = ushort.Parse(serviceId.Substring(14, 4), NumberStyles.HexNumber),
                Data4 = new[]
                {
                    byte.Parse(serviceId.Substring(19, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(21, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(24, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(26, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(28, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(30, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(32, 2), NumberStyles.HexNumber),
                    byte.Parse(serviceId.Substring(34, 2), NumberStyles.HexNumber)
                }
            };

            var bridge = new CoBridge2();

            bridge.Initialise(gameId);
            bridge.SetServiceCredentials(GameService.GameService_IndieCityLeaderboardsAndAchievements, service, serviceSecret);

            Session        = bridge.CreateDefaultGameSession();
            _sessionCookie = Session.RegisterEventHandler(0, 0, this);
            _sessionActive = false;
            _startPhase    = SessionStartPhase.NotStarted;

            _username = bridge.UserStore.GetUserFromId(Session.UserId).Name;

            _achievementsReady = !hasAchievements;
            if (hasAchievements)
            {
                AchievementsManager = new CoAchievementManager();
                AchievementsManager.SetGameSession(Session);
                AchievementsManager.InitialiseAchievements(null);
                _achievementsCookie = ((IAchievementService)AchievementsManager).RegisterAchievementEventHandler(this);
                _achievementsUnlockedAtIndieCity = new Dictionary <long, bool>();
            }

            _leaderboardsReady = !hasLeaderboards;
            if (hasLeaderboards)
            {
                _leaderboardsManager = new CoLeaderboardManager();
                _leaderboardsManager.SetGameSession(Session);
                _leaderboardsManager.InitialiseLeaderboards(null);
                _leaderboardsCookie = ((ILeaderboardService)_leaderboardsManager).RegisterLeaderboardEventHandler(this);
            }
        }
コード例 #2
0
ファイル: IndieCityManager.cs プロジェクト: rc183/igf
        public IndieCityManager(string gameId, string serviceId, string serviceSecret, bool hasAchievements, bool hasLeaderboards, IManagerServiceProvider serviceProvider, SessionEndDelegate sessionEndDelegate)
        {
            _sceneInterface = serviceProvider;
            _sessionEndDelegate = sessionEndDelegate;

            ManagerProcessOrder = 10;

            var service = new ServiceId
                              {
                                  Data1 = uint.Parse(serviceId.Substring(0, 8), NumberStyles.HexNumber),
                                  Data2 = ushort.Parse(serviceId.Substring(9, 4), NumberStyles.HexNumber),
                                  Data3 = ushort.Parse(serviceId.Substring(14, 4), NumberStyles.HexNumber),
                                  Data4 = new[]
                                              {
                                                  byte.Parse(serviceId.Substring(19, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(21, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(24, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(26, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(28, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(30, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(32, 2), NumberStyles.HexNumber),
                                                  byte.Parse(serviceId.Substring(34, 2), NumberStyles.HexNumber)
                                              }
                              };

            var bridge = new CoBridge2();
            bridge.Initialise(gameId);
            bridge.SetServiceCredentials(GameService.GameService_IndieCityLeaderboardsAndAchievements, service, serviceSecret);

            Session = bridge.CreateDefaultGameSession();
            _sessionCookie = Session.RegisterEventHandler(0, 0, this);
            _sessionActive = false;
            _startPhase = SessionStartPhase.NotStarted;

            _username = bridge.UserStore.GetUserFromId(Session.UserId).Name;

            _achievementsReady = !hasAchievements;
            if (hasAchievements)
            {
                AchievementsManager = new CoAchievementManager();
                AchievementsManager.SetGameSession(Session);
                AchievementsManager.InitialiseAchievements(null);
                _achievementsCookie = ((IAchievementService) AchievementsManager).RegisterAchievementEventHandler(this);
                _achievementsUnlockedAtIndieCity = new Dictionary<long, bool>();
            }

            _leaderboardsReady = !hasLeaderboards;
            if (hasLeaderboards)
            {
                _leaderboardsManager = new CoLeaderboardManager();
                _leaderboardsManager.SetGameSession(Session);
                _leaderboardsManager.InitialiseLeaderboards(null);
                _leaderboardsCookie = ((ILeaderboardService) _leaderboardsManager).RegisterLeaderboardEventHandler(this);
            }
        }
コード例 #3
0
        public static void Ready()
#endif
        {
            GameManager.Manager.OnSaveChanged += updateAchievementList;
            GameManager.Manager.OnSaveDeleted += initializeList;

            RenderingDevice.GDM.DeviceReset += onGDMReset;
            achievementTex = Resources.AchievementToastTexture;
            if(GameManager.Manager.CurrentSaveNumber != 0)
                accomplishmentList = Accomplishment.GetAccomplishmentList(GameManager.Manager.CurrentSaveNumber);
            achievementPos = new Vector2(RenderingDevice.Width, RenderingDevice.Height) * relativeScreenSpace;
            text = new HelpfulTextBox(new Rectangle((int)(achievementPos.X + (143 - achievementTex.Width * 0.5f) * RenderingDevice.TextureScaleFactor.X), (int)(achievementPos.Y + (50 - achievementTex.Height * 0.5f) * RenderingDevice.TextureScaleFactor.Y),
                (int)(332 * RenderingDevice.TextureScaleFactor.X), (int)(50 * RenderingDevice.TextureScaleFactor.Y)), delegate { return Resources.Font; });
            text.SetScaling(new Vector2(.8f, .8f));

#if INDIECITY
            manager = new CoAchievementManager();
            manager.SetGameSession(s);
            manager.InitialiseAchievements(null);
            manager.Update();
#endif
        }