Beispiel #1
0
    public void UpdateWhisperScoresAndLeaderboards(string PackName, string LevelName,
                                                   GameType gameType, float currentScore)
    {
        //Obtain current Level info (scores)
        SyncableLevelScore slevel = WhisperPlayerScores.Instance.GetSyncLevelScore(PackName, LevelName, gameType);

        if (slevel == null)
        {
            Debug.Log("Something went wrong, no puede ser nulo, revisar");
            return;
        }
        //Si el score que viene de parametro para ese nivel en ese modo en ese pack, entonces actualizar
        // el score de ese level en el GameDataMap de whisper sync.
        if (slevel != null && currentScore > slevel.score.BestScore.AsInt())
        {
            Debug.Log("Deberia registrar el score");
            slevel.score.BestScore.Set(currentScore);
            // Revisar si estoy logueado para poder hacer update de leaderboards
            if (AGSPlayerClient.IsSignedIn())
            {
                // Update all pack leaderboards
                foreach (var packName in Globals.Constants.PackNameArray)
                {
                    string packleaderboard = Managers.GameData.GetLeaderBoardName(packName);
                    int    packscore       = WhisperPlayerScores.Instance.GetPackScore(packName);

                    Managers.GameCircleAmazon.SubmitScoreToLeaderboard(packleaderboard, packscore);
                }
                int globalscore = WhisperPlayerScores.Instance.GetGlobalScore();
                Managers.GameCircleAmazon.SubmitScoreToLeaderboard(Globals.Constants.LeaderBoardGlobal, globalscore);
            }
        }
    }
    public SyncableLevelScore GetSyncLevelScore(string packName, string levelName, GameType gameType)
    {
        SyncableLevelScore Synlevel = ScoreList.FirstOrDefault(x => x.score.PackName.GetValue() == packName && x.score.GameType.GetValue() == gameType.ToString() &&
                                                               x.score.LevelName.GetValue() == levelName);


        return(Synlevel);
    }
Beispiel #3
0
    public int  GetLevelTopScore(string packName, string levelName, GameType type)
    {
        int Score = 0;

        SyncableLevelScore slevel = WhisperPlayerScores.Instance.GetSyncLevelScore(packName,
                                                                                   levelName, type);

        if (slevel != null)
        {
            Score = slevel.score.BestScore.AsInt();
        }

        return(Score);
    }
    public void Initialize()
    {
        GlobaldataMap = AGSWhispersyncClient.GetGameData();
        if (GlobaldataMap == null)
        {
            Debug.Log("Globaldata map es null");
            Managers.GameCircleAmazon.WhisperInitialized = false;
            return;
        }

        Debug.Log("Inicializando WhisperScores");
        ScoreList.Clear();
        foreach (var packName in Globals.Constants.PackNameArray)
        {
            for (var i = 1; i <= Globals.Constants.LevelsPerPack; i++)
            {
                foreach (var enumVal in Enum.GetValues(typeof(GameType)))
                {
                    SyncableLevelScore synclevelscore = new SyncableLevelScore();


                    synclevelscore.map =
                        GlobaldataMap.GetMap(packName + "@" + enumVal.ToString() + "@LEVEL-" + i.ToString());

                    synclevelscore.score.BestScore = synclevelscore.map.GetHighestNumber("BestScore");
                    if (!synclevelscore.score.BestScore.IsSet())
                    {
                        synclevelscore.score.BestScore.Set(0);
                    }
                    synclevelscore.score.PackName  = synclevelscore.map.GetLatestString("PackName");
                    synclevelscore.score.GameType  = synclevelscore.map.GetLatestString("GameType");
                    synclevelscore.score.LevelName = synclevelscore.map.GetLatestString("LevelName");
                    synclevelscore.score.PackName.Set(packName);
                    synclevelscore.score.GameType.Set(enumVal.ToString());
                    synclevelscore.score.LevelName.Set("LEVEL-" + i.ToString());

                    /* synclevelscore.score.PackName = synclevelscore.map.GetLatestString("PackName");
                     * synclevelscore.score.GameType = synclevelscore.map.GetLatestString("GameType");
                     *  synclevelscore.score.LevelName = synclevelscore.map.GetLatestString("LevelName");
                     * synclevelscore.score.Hits = synclevelscore.map.GetLatestNumber("Hits");
                     * synclevelscore.score.MaxTurns = synclevelscore.map.GetLatestNumber("MaxTurns");
                     * synclevelscore.score.TimeUsed = synclevelscore.map.GetLatestNumber("TimeUsed");
                     *
                     */
                    ScoreList.Add(synclevelscore);
                }
            }
        }
    }
Beispiel #5
0
    public int GetLevelTopScore(string packName, int levelNumber, GameType type)
    {
        int Score = 0;


        SyncableLevelScore slevel = WhisperPlayerScores.Instance.GetSyncLevelScore(packName,
                                                                                   "LEVEL-" + levelNumber.ToString(), type);

        if (slevel != null)
        {
            Score = slevel.score.BestScore.AsInt();
        }

        return(Score);
    }