Exemple #1
0
 public void RegisterCompletedGame(SingleGameStatsMeta stats)
 {
     totalFlips        += stats.NFlips;
     totalTargetChecks += stats.NTargetChecks;
     totalTime         += stats.Time;
     if (stats.SuccessfullGame)
     {
         totalSuccessfullGames++;
     }
     else
     {
         totalFailedGames++;
     }
 }
Exemple #2
0
    void Awake()
    {
        statsMeta = new SingleGameStatsMeta();
        statsMeta.DifficultyFactor = 0.3f;
        statsMeta.NTargetChecks    = 1;
        cameraController           = GameObject.FindGameObjectWithTag(Tags.MAIN_CAMERA).GetComponent <CameraController> ();
        stackGenerator             = new GameStacksBuilder();
        prefabsManager             = GameObject.FindGameObjectWithTag(Tags.PREFABS_MANAGER).GetComponent <PrefabsManager> ();

        blur         = cameraController.GetComponent <BlurOptimized> ();
        blur.enabled = false;

        GameStacks gamestacks = stackGenerator.BuildGameStacks(ApplicationModel.stackMetaPair, prefabsManager);

        statsMeta.MaxFlips = gamestacks.MaxFlips + (int)(Mathf.Max(gamestacks.Target.Meta.ChipCount() * statsMeta.DifficultyFactor, 1));
        targetStack        = gamestacks.Target;
        targetStack.AddListener(this);

        hud = GameObject.FindGameObjectWithTag(Tags.HUD).GetComponent <StatisticsController>();
        hud.SetNFlips(statsMeta.MaxFlips);
        hudController = hud.GetComponent <HUDController> ();

        pauseMenu = GameObject.FindGameObjectWithTag(Tags.PAUSE_MENU).GetComponent <StatisticsController> ();
        pauseMenu.SetNFlipsLeft(statsMeta.MaxFlips);
        pauseMenu.SetNTargetChecks(1);
        pauseMenu.SetTime(0f);

        gameOverMenu = GameObject.FindGameObjectWithTag(Tags.GAME_OVER_MENU).GetComponent <StatisticsController> ();
        gameOverMenu.SetNFlipsLeft(statsMeta.MaxFlips);
        gameOverMenu.gameObject.SetActive(false);
        ResumeGame();

        stacks = new List <Stack> ();
        stacks.Add(gamestacks.Player);
        foreach (Stack stack in stacks)
        {
            stack.AddListener(this);
        }
    }
    public static void HandleAchievements(SingleGameStatsMeta statsMeta, StackMeta stackMeta)
    {
        if (ApplicationModel.achievements == null)
        {
            Debug.Log("<color=blue>The achievements hasn't been retrieved. This indicated that the player hasn't signed in using google play games services</color>");
            return;
        }
                #if UNITY_ANDROID || UNITY_IOS
        IAchievement newbie = ApplicationModel.GetAchievement(GPGSIds.achievement_newbie);
        if (!newbie.completed)
        {
            PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_newbie, 1, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully updated the newbie-achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement fanish = ApplicationModel.GetAchievement(GPGSIds.achievement_fanish);
        if (!fanish.completed)
        {
            PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_fanish, 1, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully updated the fanish-achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement megaFan = ApplicationModel.GetAchievement(GPGSIds.achievement_mega_fan);
        if (!megaFan.completed)
        {
            PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_mega_fan, 1, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully updated the mega fan-achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement luckyDuck = ApplicationModel.GetAchievement(GPGSIds.achievement_lucky_duck);
        if (!luckyDuck.completed && AchievementRules.IsLuckyDuckAccomplished(statsMeta.SuccessfullGame, statsMeta.NFlips))
        {
            Social.ReportProgress(GPGSIds.achievement_lucky_duck, 100.0f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully set the lucky duck achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement speedster = ApplicationModel.GetAchievement(GPGSIds.achievement_speedster);
        if (!speedster.completed && AchievementRules.IsSpeedsterAccomplished(statsMeta.SuccessfullGame, statsMeta.Time))
        {
            Social.ReportProgress(GPGSIds.achievement_speedster, 100.0f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully set the lucky duck achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement brainiac = ApplicationModel.GetAchievement(GPGSIds.achievement_brainiac);
        if (!brainiac.completed && AchievementRules.IsBrainiacAccomplished(statsMeta.SuccessfullGame, stackMeta.ChipCount()))
        {
            Social.ReportProgress(GPGSIds.achievement_brainiac, 100.0f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully set the brainiac achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement eideticMemory = ApplicationModel.GetAchievement(GPGSIds.achievement_eidetic_memory);
        if (!eideticMemory.completed && IsEideticMemoryAccomplished(statsMeta.SuccessfullGame, statsMeta.NTargetChecks, stackMeta.ChipCount()))
        {
            Social.ReportProgress(GPGSIds.achievement_eidetic_memory, 100.0f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully sett the eidetic memory achievement");
                }
                else
                {
                    //Store locally
                }
            });
        }

        IAchievement closeCall = ApplicationModel.GetAchievement(GPGSIds.achievement_close_call);
        if (!closeCall.completed && IsCloseCallAccomplished(statsMeta.SuccessfullGame, statsMeta.MaxFlips - statsMeta.NFlips))
        {
            Social.ReportProgress(GPGSIds.achievement_close_call, 100f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully set the close call achievement");
                }
            });
        }

        IAchievement completionStreak = ApplicationModel.GetAchievement(GPGSIds.achievement_completion_streak);
        if (!completionStreak.completed && IsCompletionStreakAccomplished(ApplicationModel.statistics.CurrentStreakCount))
        {
            Social.ReportProgress(GPGSIds.achievement_completion_streak, 100f, (bool success) => {
                if (success)
                {
                    Debug.Log("Successfully set the completion streak achievement");
                }
            });
        }
                #endif
    }