示例#1
0
 static public void SendAchievementUnlocked(AchievementSettings ach)
 {
     AnalyticsEvent.AchievementUnlocked(ach.title, new Dictionary <string, object>
     {
         { "time", DateTime.Now }
     });
 }
示例#2
0
    public static void UnlockToggleFromAchievement(AchievementSettings setting)
    {
        if (setting != null)
        {
            if (setting.complete)
            {
                switch ((int)setting.partAwarded)
                {
                case 0:
                    if (setting.indexOfPart < _S._turretToggleList.Length && setting.indexOfPart > 0)
                    {
                        _S._turretToggleList[setting.indexOfPart].interactable = true;
                    }
                    else
                    {
                        Debug.LogError("achievement out of range.");
                    }
                    break;

                case 1:
                    if (setting.indexOfPart < _S._bodyToggleList.Length && setting.indexOfPart > 0)
                    {
                        _S._bodyToggleList[setting.indexOfPart].interactable = true;
                    }
                    else
                    {
                        Debug.LogError("achievement out of range.");
                    }
                    break;
                }
            }
            else
            {
                switch ((int)setting.partAwarded)
                {
                case 0:
                    if (setting.indexOfPart < _S._turretToggleList.Length && setting.indexOfPart > 0)
                    {
                        _S._turretToggleList[setting.indexOfPart].interactable = false;
                    }
                    else
                    {
                        Debug.LogError("achievement out of range.");
                    }
                    break;

                case 1:
                    if (setting.indexOfPart < _S._bodyToggleList.Length && setting.indexOfPart > 0)
                    {
                        _S._bodyToggleList[setting.indexOfPart].interactable = false;
                    }
                    else
                    {
                        Debug.LogError("achievement out of range.");
                    }
                    break;
                }
            }
        }
    }
示例#3
0
    public void SetAchievementPanel(AchievementSettings settings)
    {
        achivementTitle.text = settings.achievementTitle;
        achievementText.text = settings.achievementText;

        medalImage.sprite     = settings.medalImage;
        achievementArt.sprite = settings.achievementArt;
    }
示例#4
0
 private void Update()
 {
     //queue for achievements.
     if (_settingsQueue.Count > 0)
     {
         if (UIScript.AchievementDone())
         {
             AchievementSettings setting = _settingsQueue.Peek();
             UIScript.DisplayAchievementForTime(displayTime, setting.title, setting.description.Replace("#", "" + setting.count));
             _settingsQueue.Dequeue();
         }
     }
 }
示例#5
0
    //decided I'd try to only run this on an event(aka when the value changed) so after I add the value
    //I just call it on the script I added it from. plan on making methods later to make it simpler.
    /// <summary>
    /// make sure to call this after changing variables
    /// </summary>
    public static void AchievementCheck()
    {
        if (SaveGameManager.CheckHighScore(SCORE) && !_S._newHighScore)
        {
            _S._newHighScore = true;
            AchievementSettings highScoreSettings = new AchievementSettings();
            highScoreSettings.title       = _S.highScoreTitle;
            highScoreSettings.description = _S.highScoreDescription;
            highScoreSettings.count       = SCORE;
            _S._settingsQueue.Enqueue(highScoreSettings);
            UIScript.SetGameOverText("HIGH SCORE!");
        }
        foreach (AchievementSettings setting in _S.settings)
        {
            switch ((int)setting.achievementType)
            {
            case 0:                    //LuckyShot
                if (BULLET_WRAP_COUNT >= setting.count && !setting.complete)
                {
                    setting.complete = true;
                    _S._settingsQueue.Enqueue(setting);
                    CustomAnalytics.SendAchievementUnlocked(setting);
                }
                break;

            case 1:                    //AsteroidHitCount
                if (ASTEROIDS_HIT >= setting.count && !setting.complete)
                {
                    setting.complete = true;
                    _S._settingsQueue.Enqueue(setting);
                    CustomAnalytics.SendAchievementUnlocked(setting);
                }
                break;

            case 2:                    //BulletsFired
                if (BULLETS_FIRED >= setting.count && !setting.complete)
                {
                    setting.complete = true;
                    _S._settingsQueue.Enqueue(setting);
                    CustomAnalytics.SendAchievementUnlocked(setting);
                }
                break;

            case 3:                    //Points
                if (SCORE >= setting.count && !setting.complete)
                {
                    setting.complete = true;
                    _S._settingsQueue.Enqueue(setting);
                    CustomAnalytics.SendAchievementUnlocked(setting);
                }
                break;

            case 4:                    //LevelsComplete
                if (AsteraX.GetLevel() >= setting.count && !setting.complete)
                {
                    setting.complete = true;
                    _S._settingsQueue.Enqueue(setting);
                    CustomAnalytics.SendAchievementUnlocked(setting);
                }
                break;

            default:
                break;
            }

            UIScript.UnlockToggleFromAchievement(setting);
        }
        SaveGameManager.Save();
    }